系统权限管理

ThinkAdmin v6 的权限管理是简化于标准的 RBAC 模型,并加入了注解权限配置。权限控制能够精确到按钮级别,为使用者提供了更大的灵活性。 在权限管理中,整合了 功能节点、权限管理、菜单管理和用户管理。为了简化权限管理过程,系统剔除了繁杂的功能节点,使整个流程更加简洁高效。 功能节点由系统自动维护,并根据控制器的代码注释进行刷新。若您希望加入权限控制的访问方法,只需添加标准的块注释即可。这一设计让您能够更轻松地实施和管理权限控制,从而更好地保障系统的安全性。

注解规则

注解规则案例如下,@auth 优先级高于 @login 配置,通常只需要配置 @auth 即可添加到后台权限配置。

/**
 * 操作方法的名称
 * @auth true  # 表示需要验证权限
 * @menu true  # 添加系统菜单节点
 * @login true # 强制登录才可访问
 */
public function index(){
   // @todo
}

注释中有效注释解析如下:

  • 其中@auth true表示访问需要配置授权才能访问
  • 其中@menu true在编辑菜单时自动提示节点可选项
  • 其中@login true强制需要登录才能访问该操作

权限管理

创建权限后,接下来是为权限配置可访问的功能节点。例如,若权限A仅允许访问特定的功能节点,您需要在配置中勾选这些节点。

在配置授权时,若需展示应用名称,请前往 config/app.php 文件设置 app_names 的应用名称。请注意,这些名称在显示前会经过 lang() 函数进行语言转换处理,确保在不同语言环境下均能正确显示。

若您不希望某个应用受到后台权限控制,可以通过配置 rbac_ignore 选项来实现。这样,您就可以更灵活地管理不同应用的权限设置。

return [
    // ...
    // 其他参数未显示
    'app_names' => [
        'admin' => '系统管理',
        'wechat' => '微信管理',
        'plugin-account' => '账号管理'
    ],
    // 忽略 RBAC 权限检查,可以配置多个应用
    'rbac_ignore' => [ 'index', 'wap', 'api' ],
    // 配置 RBAC 登录地址,通常不需要配置
    'rbac_login' => ''
];

权限配置截图

菜单管理

菜单支持层级结构,最大深度为三级,其中上级菜单占据一级,左侧菜单占据两级。

在创建和编辑菜单时,务必仔细遵循菜单节点命名的规范。例如,节点的命名应遵循如 admin/menu/index 的格式,并请注意节点路径中前后斜杠的使用,避免错误。

若在控制器方法的节点注释中标注了 menu true,则该节点会自动出现在快捷提示列表中,方便用户直接从列表中选取,无需手动输入,提高了操作效率。

菜单管理截图

用户管理

在后台创建新的用户账号后,您需要为该账号分配已配置好的权限,这样用户登录后便能显示对应的菜单及访问权限。

请注意:系统默认提供的 admin 账号是超级用户,它拥有访问系统所有节点的权限。若您希望更改超级用户的账号名称,可以在 config/app.php 文件中进行相应配置。

用户管理截图
Last Updated:
Contributors: 邹景立