我如何设置权限mdmsoft/yii2管理员
问题描述:
的AccessControl的我创建了一个同意我的系统,并通过这个扩展他人工作的罚款。作为示例,我设置了对页面模块的许可,然后我使用下面的代码我如何设置权限mdmsoft/yii2管理员
if(\Yii::$app->user->can('page_module')){}else{
throw new ForbiddenHttpException("You are not authorized to perform this action.", 403);
}
并且它提供了我的限制。我在扩展控制器中使用了这些行代码,然后它受到限制,但是如果我更新扩展,则容易受到攻击,代码将被删除。我不明白我如何扩展所有控制器和设置权限。如果有其他未知的方式给我。
答
一旦你安装,直到你授予它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
- 首先添加您的路线。
- 添加您的权限。
- 为您的权限分配路线。
- 创建您的角色。
- 为您的角色分配权限。
- 为用户分配角色。
对于所需的功能,您应该使用您的类扩展模块类,然后引用您的类。因此,当您更新扩展时,您的代码未触及,并且功能仍然有效 – scaisEdge