我为我的系统创建了一个权限,通过这个扩展,其他人工作正常。例如,我为页面模块设置了权限,然后我使用了以下代码
if(Yii::$app->user->can('page_module')){}else{
throw new ForbiddenHttpException("You are not authorized to perform this action.", 403);
}
它为我提供了限制。我在扩展控制器中使用这些行 pf 代码,然后它受到限制,但它容易受到攻击,如果我更新扩展,那么代码将被删除。而且我不明白我如何扩展所有控制器并设置权限。如果有另一种方式,我不知道。
设置完 mdmsoft/yii2-admin 扩展后,将拒绝对所有路由的访问,直到您授予它。与其硬编码yii::$app->user-can('permission')
不如使用 RBAC,这应该是您安装 mdmsoft/yii2-admin 的唯一原因。
作为访问设置希望您使用Yii2的高级模板。最初,在您的frontend/config/main.php
中设置 as 访问权限:
'as access' => [
//This access behavior must be in frontend and backend.
//The 'as access' behavior will interfere with migrations if put in common.
'class' => 'mdmadmincomponentsAccessControl',
'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
转到管理员 URL,例如... app:port/admin
RBAC 层次结构如下所示:
用户>角色>权限>路由
例
-乔伊
--Admin_Role
---- Admin_Permission
--------应用/控制器1/*
--------应用/控制器2/视图
设置 RBAC
- 首先添加您的路线。
- 添加您的权限。
- 将路由分配给您的权限。
- 创建您的角色。
- 为您的角色分配权限。
- 为用户分配角色。