diff --git a/backend/routers/router.go b/backend/routers/router.go index 67b5114..b188292 100644 --- a/backend/routers/router.go +++ b/backend/routers/router.go @@ -143,14 +143,14 @@ func SetupRouter() *gin.Engine { alertNotify.PUT("/notify-config", middleware.AdminAuth(), alertsCtrl.UpdateNotifyConfig) alertNotify.POST("/notify-config/test", middleware.AdminAuth(), alertsCtrl.TestNotifyConfig) alertNotify.GET("/rules", alertsCtrl.ListRules) - alertNotify.POST("/rules", middleware.AdminAuth(), alertsCtrl.CreateRule) - alertNotify.PUT("/rules/:id", middleware.AdminAuth(), alertsCtrl.UpdateRule) + alertNotify.POST("/rules", middleware.AdminAuth(), middleware.RequirePro(), alertsCtrl.CreateRule) + alertNotify.PUT("/rules/:id", middleware.AdminAuth(), middleware.RequirePro(), alertsCtrl.UpdateRule) alertNotify.DELETE("/rules/:id", middleware.AdminAuth(), alertsCtrl.DeleteRule) - alertNotify.POST("/check", middleware.AdminAuth(), alertsCtrl.CheckNow) + alertNotify.POST("/check", middleware.AdminAuth(), middleware.RequirePro(), alertsCtrl.CheckNow) alertNotify.GET("/deliveries", alertsCtrl.Deliveries) alertNotify.GET("/channels", alertsCtrl.ListChannels) - alertNotify.POST("/channels", middleware.AdminAuth(), alertsCtrl.SaveChannel) - alertNotify.PUT("/channels/:id", middleware.AdminAuth(), alertsCtrl.SaveChannel) + alertNotify.POST("/channels", middleware.AdminAuth(), middleware.RequirePro(), alertsCtrl.SaveChannel) + alertNotify.PUT("/channels/:id", middleware.AdminAuth(), middleware.RequirePro(), alertsCtrl.SaveChannel) alertNotify.DELETE("/channels/:id", middleware.AdminAuth(), alertsCtrl.DeleteChannel) alertNotify.POST("/channels/test", middleware.AdminAuth(), alertsCtrl.TestChannel) } diff --git a/backend/services/alert.go b/backend/services/alert.go index ca316e7..798eedb 100644 --- a/backend/services/alert.go +++ b/backend/services/alert.go @@ -84,6 +84,12 @@ func StartAlertEngine() { log.Printf("[alert] 上一轮检查仍在运行,跳过本轮") continue } + // Pro 闸门:日志告警是 Pro 功能,免费/试用到期后引擎不再评估 + // (规则与历史保留,重新授权即恢复,不删任何数据) + if !IsPro() { + alertCheckRunning.Store(false) + continue + } start := time.Now() ok := true func() {