feat(features): 功能开放 - 增加自定义渠道开关

This commit is contained in:
MasterChiefCN
2026-08-15 13:25:50 +08:00
parent b2a7eef35d
commit f83ff03df3
16 changed files with 154 additions and 30 deletions

View File

@@ -17,6 +17,10 @@ func RegisterChannelModelRoutes(r *gin.RouterGroup, svc *service.Service) {
failService(c, err)
return
}
if err := svc.RequireFeature(service.FeatureCustomChannels); err != nil {
failService(c, err)
return
}
if !enforceRateLimit(c, "channel-models:"+user.ID, 30, time.Minute) {
return
}

View File

@@ -27,6 +27,10 @@ func RegisterCustomRelayRoutes(r *gin.RouterGroup, svc *service.Service) {
failService(c, err)
return
}
if err := svc.RequireFeature(service.FeatureCustomChannels); err != nil {
failService(c, err)
return
}
policy, available := loadRuntimePolicy(c, svc)
if !available || !enforceRateLimit(c, "custom-relay:"+user.ID, policy.Request.CustomRelayPerMinute, time.Minute) {
return

View File

@@ -42,8 +42,13 @@ func RegisterFeatureAvailabilityRoutes(r *gin.RouterGroup, svc *service.Service)
failService(c, err)
return
}
current, err := svc.AdminFeatureAvailability(user)
if err != nil {
failService(c, err)
return
}
c.Request.Body = http.MaxBytesReader(c.Writer, c.Request.Body, 16<<10)
var req service.FeatureAvailability
req := current.FeatureAvailability
if err := c.ShouldBindJSON(&req); err != nil {
fail(c, http.StatusBadRequest, err)
return