fix: cache admin permissions in redis

This commit is contained in:
richjohnrambo
2026-09-23 00:30:40 +08:00
parent 4fbc896d75
commit dd12dbfe07
3 changed files with 129 additions and 26 deletions
+9 -5
View File
@@ -82,9 +82,9 @@ func (s *sAdminRole) Verify(ctx context.Context, path, method string) bool {
return true
}
ok, err := casbin.Enforcer.Enforce(user.RoleKey, path, method)
ok, err := casbin.Verify(ctx, user.RoleKey, path, method)
if err != nil {
g.Log().Infof(ctx, "admin Verify Enforce err:%+v", err)
g.Log().Infof(ctx, "admin Verify cache err:%+v", err)
return false
}
return ok
@@ -221,7 +221,10 @@ func (s *sAdminRole) Edit(ctx context.Context, in *adminin.RoleEditInp) (err err
// 如果当前角色有子级,更新子级tree关系树
return updateRoleChildrenTree(ctx, in.Id, in.Level, in.Tree)
})
return
if err != nil {
return
}
return casbin.Refresh(ctx)
}
// 新增
@@ -229,7 +232,7 @@ func (s *sAdminRole) Edit(ctx context.Context, in *adminin.RoleEditInp) (err err
err = gerror.Wrap(err, consts.ErrorORM)
return
}
return
return casbin.Refresh(ctx)
}
func updateRoleChildrenTree(ctx context.Context, _id int64, _level int, _tree string) (err error) {
@@ -288,8 +291,9 @@ func (s *sAdminRole) Delete(ctx context.Context, in *adminin.RoleDeleteInp) (err
if _, err = dao.AdminRole.Ctx(ctx).Where("id", in.Id).Delete(); err != nil {
err = gerror.Wrap(err, consts.ErrorORM)
return
}
return
return casbin.Refresh(ctx)
}
func (s *sAdminRole) DataScopeSelect() (res form.Selects) {