我如何设置mdmsoft/yii2-admin的访问控制权限



我为我的系统创建了一个权限,通过这个扩展,其他人工作正常。例如,我为页面模块设置了权限,然后我使用了以下代码

  if(Yii::$app->user->can('page_module')){}else{
        throw new ForbiddenHttpException("You are not authorized to perform this action.", 403);
    } 

它为我提供了限制。我在扩展控制器中使用这些行 pf 代码,然后它受到限制,但它容易受到攻击,如果我更新扩展,那么代码将被删除。而且我不明白我如何扩展所有控制器并设置权限。如果有另一种方式,我不知道。

设置完 mdmsoft/yii2-admin 扩展后,将拒绝对所有路由的访问,直到您授予它。与其硬编码yii::$app->user-can('permission')不如使用 RBAC,这应该是您安装 mdmsoft/yii2-admin 的唯一原因。

作为访问设置希望您使用Yii2的高级模板。最初,在您的frontend/config/main.php中设置 as 访问权限:

'as access' => [
    //This access behavior must be in frontend and backend.
    //The 'as access' behavior will interfere with migrations if put in common.
    'class' => 'mdmadmincomponentsAccessControl',
    'allowActions' => [
        'site/*',  //Allow by default to all.
        'debug/*',
        //'admin/*', //Leave commented out, unless setting up admin roles initially.
        //Allow guests to do:
        'ticket/ticket/index', 
    ]
],

设置 RBAC

转到管理员 URL,例如... app:port/admin

RBAC 层次结构如下所示:

用户>角色>权限>路由

-乔伊

-

-Admin_Role

---- Admin_Permission

--------应用/控制器1/*

--------应用/控制器2/视图

设置 RBAC

  1. 首先添加您的路线。
  2. 添加您的权限。
  3. 将路由分配给您的权限。
  4. 创建您的角色。
  5. 为您的角色分配权限。
  6. 为用户分配角色。

最新更新