2
我如何在一個地方檢查權限?
我不想單獨檢查每個功能。Yii2 RBAC檢查權限沒有控制器中的每個動作
我的RBAC控制器。 我想檢查控制器中所有操作的登錄用戶權限。現在,我必須在控制器
$admin = $auth->createRole('Admin');
$moderator = $auth->createRole('Moderator');
$createPost=$auth->createPermission('createPost');
$updatePost=$auth->createPermission('updatePost');
$deletePost=$auth->createPermission('deletePost');
$createCategory=$auth->createPermission('createCategory');
$updateCategory=$auth->createPermission('updateCategory');
$deleteCategory=$auth->createPermission('deleteCategory');
$auth->add($admin);
$auth->add($moderator);
$auth->add($createPost);
$auth->add($updatePost);
$auth->add($deletePost);
$auth->add($createCategory);
$auth->add($updateCategory);
$auth->add($deleteCategory);
在這裏,我分配的權限角色單獨使用Yii::$app->user->can('...')
每個動作,但由於行爲手動編寫我從來沒有使用這些權限 - >(如你的例子)
什麼是目標,在RBAC中創建許可,如果這不起作用?如果我想添加高級用戶。我只能在控制器中添加動作actionPremium併爲高級用戶設置行爲操作。
e.g
行動=> [ '溢價'] 角色=> [ 'premiumUser']
和一個問題。 行爲如何自定義消息錯誤?
$auth->addChild($admin,$moderator);
$auth->addChild($admin,$createCategory);
$auth->addChild($admin,$updateCategory);
$auth->addChild($admin,$deleteCategory);
$auth->addChild($moderator, $createPost);
$auth->addChild($moderator, $updatePost);
$auth->addChild($moderator, $deletePost);
$auth->assign($admin,1);
$auth->assign($moderator,2);
好的,我明白了,但告訴我,在我的例子中,RBAC的創建權限是什麼。 createPost,updatePost等,然後將她與表auth_item_child中的角色關聯起來? 如果我可以手動編寫需要操作?你能解釋我嗎? – Demolog
@Demolog請用更詳細的方式解釋你的目標,我不太明白(最終編輯你的問題..) – scaisEdge
我編輯了問題 – Demolog