权限控制 - 开箱即用

系统默认集成了简易的权限管理系统

安装好以后即可直接使用

也是足够灵活扩展的

下面详细说明

路由权限控制配置

核心就是配置中的 rules 选项

增加权限验证 只需要在 rules 数组中增加条目即可

#project\app\admin\config\login.php



// +----------------------------------------------------------------------
// | 登录注册相关配置
// +----------------------------------------------------------------------

return [

    // 无权访问拦截地址
    'no_access_url' => env('manage_login_url', '/admin/login/no_access'),

    // 路由访问限制
    // 如果配置一个 空数组, 表示不验证权限,直接访问
    //
    // anonymous 表示可用匿名访问, 不登录
    // login     表示登录后可用访问
    // other     表示需要指定的权限可以访问 (直接写自己定义的权限名称)
    //
    'rules' => [
        '^/admin/*' => 'login',
        '^/admin/login/.*' => 'anonymous',

        // 为了方便演示,首页不用登录,其他页面都需要登录
        '^/admin/index/' => 'anonymous',

        // ... 其他路由规则,权限配置,在这里增加就好了
    ]

];

在 tp 的中间件中读取 rules配置

采用的是正则匹配, 用rules数组中的 key 匹配当前 url

取匹配度最高的一条,作为当前访问url的权限

业务中权限控制
项目的任意地方调用判断即可
if( User::getInstance()->hasRole('role_super') ){
    // 超级管理员才显示菜单
    // 超级管理员才显示字段
    // 超级管理员才执行某段逻辑
    // ...
    // ...
    // 根据自己逻辑干就完了
}