2017-10-19 133 views
0

的AccessControl的我创建了一个同意我的系统,并通过这个扩展他人工作的罚款。作为示例,我设置了对页面模块的许可,然后我使用下面的代码我如何设置权限mdmsoft/yii2管理员

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

并且它提供了我的限制。我在扩展控制器中使用了这些行代码,然后它受到限制,但是如果我更新扩展,则容易受到攻击,代码将被删除。我不明白我如何扩展所有控制器和设置权限。如果有其他未知的方式给我。

+0

对于所需的功能,您应该使用您的类扩展模块类,然后引用您的类。因此,当您更新扩展时,您的代码未触及,并且功能仍然有效 – scaisEdge

回答

1

一旦你安装,直到你授予它mdmsoft/yii2管理员扩展访问被拒绝所有路由。而不是硬编码yii::$app->user-can('permission')利用RBAC,这应该是您安装mdmsoft/yii2-admin的唯一原因。

As Access Setup 希望您使用Yii2的高级模板。 最初,设置了为您的frontend/config/main.php访问:

'as access' => [ 
    //This access behavior must be in frontend and backend. 
    //The 'as access' behavior will interfere with migrations if put in common. 
    'class' => 'mdm\admin\components\AccessControl', 
    '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

RBAC等级是这样的:

用户 - > Roles-> Permissions->路线

实施例

-Joey

--Admin_Role

---- Admin_Permission

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

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

设置RBAC

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