2017-08-09 87 views
0
  1. 如何使用gii在yii2中創建權限,角色和規則?
  2. 如何在yii2中分配角色?

如何使用下面的4個表來實現所有這些?yii2中的RBAC表

  1. auth_item
  2. auth_item_child
  3. auth_assignment
  4. auth_rule

考慮這樣的情況:

有兩個用戶管理和FieldOfficer:

我SHGProfile CRUD應用程通貨膨脹。

FieldOfficer只能訪問SHGProfile中的創建和查看操作。 管理員可以訪問所有創建,查看,更新和刪除操作。

這裏角色是管理員和FieldOfficer。 權限爲createGroup,viewGroup,updateGroup和deleteGroup

在這裏我們需要在哪個表中創建角色和權限以及如何將其分配給用戶?

回答

0

我會在這裏解釋一下哪些表包含的角色和權限,以及如何將權限分配給用戶:

  1. 插入您的所有角色中auth_item表即管理員,FieldOfficer,createGroup,ViewGroup中,updateGroup,deleteGroup。

  2. 在auth_item_child表中將createGroup,viewGroup,updateGroup和deleteGroup分配給管理員角色。

  3. 在auth_item_child表中將createGroup,viewGroup分配給FieldOfficer角色。

  4. 爲具有角色ID和用戶ID的auth_assignment表中的用戶分配權限。僅分配像Admin或FieldOfficer這樣的父級角色。在你的控制器使用AccessControl的用於提供訪問

  5. 我們登錄用戶按照自己的角色

    public function behaviors() 
    { 
    
        return [ 
         'access' => [ 
         'class' => \yii\filters\AccessControl::className(), 
         'only' => ['create', 'view' , 'update' , 'delete'], 
         'rules' => [ 
    
          // allow all actions to Admin role users 
          [ 
           'allow' => true, 
           'actions' => ['create', 'view' , 'update' , 'delete'], 
           'roles' => ['Admin'], 
          ], 
          // allow create , view actions to FieldOfficer role users 
          [ 
           'allow' => true, 
           'actions' => ['create', 'view'], 
           'roles' => ['FieldOfficer'], 
          ], 
          // everything else is denied 
         ], 
        ], 
        ]; 
        } 
    
+0

我設計了上述過程,並登錄使用的用戶具有角色admin。現在我嘗試創建組。它給出foll錯誤: 無效配置 - yii \ base \ InvalidConfigException 規則未找到: – Questions

+0

您需要遵循yii2文檔以正確實現AccessControll。我爲你寫了一個演示代碼。 –

+0

它給出,無效配置 - yii \ base \ InvalidConfigException規則未找到錯誤 – Questions