refactor(init): Move provider and role initialization to Init()

- Move VBaseProvider initialization from init() to Init() function
    - Move role initialization (admin/user) from api/init.go to Init()
    - Remove global VBaseProvider variable reference from tests
    - Use NewAuth factory function instead of direct auth.Factory.New call
master
veypi 4 weeks ago
parent 261dd9ffb0
commit cad627c7b5

@ -49,10 +49,6 @@ func init() {
Router.Use(cfg.Auth.Login()) Router.Use(cfg.Auth.Login())
Router.After(common.JsonResponse, common.JsonErrorResponse) Router.After(common.JsonResponse, common.JsonErrorResponse)
// 初始化角色
cfg.Auth.AddRole("admin", "管理员", "*:7")
cfg.Auth.AddRole("user", "普通用户")
// 子路由挂载 // 子路由挂载
Router.Extend("/auth", apiAuth.Router) Router.Extend("/auth", apiAuth.Router)
Router.Extend("/users", user.Router) Router.Extend("/users", user.Router)

@ -27,19 +27,19 @@ var (
) )
func init() { func init() {
// 初始化 VBaseProvider 并设置到全局 Auth
auth.VBaseProvider = auth.Factory.New("vb")
cfg.Auth.SetProvider(auth.VBaseProvider)
Router.Extend("/api", api.Router) Router.Extend("/api", api.Router)
Router.Extend("v", vhtmlui.Router) Router.Extend("v", vhtmlui.Router)
Router.Extend("vhtml", vhtml.Router) Router.Extend("vhtml", vhtml.Router)
vhtml.WrapUI(Router, uifs)
} }
type Options = cfg.Options type Options = cfg.Options
func Init() error { func Init() error {
// 初始化 VBaseProvider 并设置到全局 Auth
cfg.Auth.SetProvider(NewAuth("vb"))
// 初始化角色
cfg.Auth.AddRole("admin", "管理员", "*:7")
cfg.Auth.AddRole("user", "普通用户")
return models.Migrate() return models.Migrate()
} }

@ -29,11 +29,6 @@ func TestScopedAuth(t *testing.T) {
if !testAuth.Check(ctx, User1ID, permID, level) { if !testAuth.Check(ctx, User1ID, permID, level) {
t.Errorf("Expected User1 to have %s in %s scope", permID, scope) t.Errorf("Expected User1 to have %s in %s scope", permID, scope)
} }
// Verify Check in global VBaseProvider scope (should be false)
if auth.VBaseProvider.Check(ctx, User1ID, permID, level) {
t.Errorf("Expected User1 NOT to have %s in 'vb' scope", permID)
}
}) })
// 2. Test Hierarchy (Admin Inheritance vs Normal Strictness) // 2. Test Hierarchy (Admin Inheritance vs Normal Strictness)

Loading…
Cancel
Save