feat: better admin permissions (#5755)

* feat: add casbin admin permissions

* feat: improve audit logging to associate logs with actual operators and target users

* feat: enhance admin permissions and UI interactions for sensitive actions

* Refactor authz RBAC and tighten channel permissions

* Split channel authz field policy

* Address channel authz review findings
This commit is contained in:
Calcium-Ion
2026-06-27 17:01:59 +08:00
committed by GitHub
parent 6c35e1ef26
commit 4aee5f7d5a
52 changed files with 2778 additions and 255 deletions
+8
View File
@@ -23,6 +23,7 @@ import (
"github.com/QuantumNous/new-api/relay"
"github.com/QuantumNous/new-api/router"
"github.com/QuantumNous/new-api/service"
"github.com/QuantumNous/new-api/service/authz"
_ "github.com/QuantumNous/new-api/setting/performance_setting"
"github.com/QuantumNous/new-api/setting/ratio_setting"
@@ -100,6 +101,9 @@ func main() {
// 热更新配置
go model.SyncOptions(common.SyncFrequency)
// 周期性重载授权策略,保证多节点/多 master 部署下权限变更能传播到每个实例
go authz.StartPolicySync(common.SyncFrequency)
// 数据看板
go model.UpdateQuotaData()
@@ -284,6 +288,10 @@ func InitResources() error {
common.FatalLog("failed to initialize database: " + err.Error())
return err
}
if err = authz.Init(model.DB); err != nil {
common.FatalLog("failed to initialize authorization: " + err.Error())
return err
}
model.CheckSetup()