我为我的系统创建了一个权限,通过此扩展,其他人工作正常。例如,我为Page模块设置了权限,然后我使用了下面的代码
if(\Yii::$app->user->can('page_module')){}else{
throw new ForbiddenHttpException("You are not authorized to perform this action.", 403);
}
它为我提供了限制。我在扩展控制器中使用了这些行pf代码,然后它受到限制,但是如果我更新扩展然后代码将被删除它很容易导致。我并不了解如何扩展所有控制器并设置权限。如果还有另一种方式,我不知道。
答案 0 :(得分:2)
设置mdmsoft / yii2-admin扩展访问权限后,所有路由都将被拒绝,直到您授予它为止。而不是硬编码yii::$app->user-can('permission')
使用RBAC,这应该是您安装mdmsoft / yii2-admin的唯一原因。
作为访问设置
希望您使用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
-------- app / controller1 / *
-------- app / controller2 / view
设置RBAC