ballcat-projects/ballcat

超级管理员的权限判断优化

Hccake opened this issue · 0 comments

目前 ballcat 提供了超级管理员的配置文件, SystemProperties :

ballcat:
  system:
    administrator:
      user-id: 0
      username: xxx

可以指定超级管理员的用户 id 或者 用户名,超级管理员默认拥有所有的角色和权限。

目前的实现逻辑是在登陆时会赋值超级管理员所有的角色和权限,当角色较多时,返回数据量较大。可以简化为在登陆时给用户设置一个标志位,标识其是否是超级管理员。

服务端鉴权时,先判断标志位是否存在,是则直接返回 true,鉴权代码在 CustomPermissionEvaluator
前端鉴权逻辑也基本相同,先判断标志位,再判断是否有角色或者权限