2017-10-19 87 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. 爲用戶分配角色。