我正在使用yii2-admin和yii2-user。我创建了一个角色Creator,它可以访问所有内容。还有一个名为Admin的角色,它的访问权限有限。但有权删除用户。现在,我想限制Admin删除Creator。我知道这可以通过重写AdminController of yii2-user的AdminController函数来实现。但我无法理解限制Admin或任何其他用户删除Creator的逻辑。
提前感谢!
发布于 2015-01-22 22:49:08
看看这里:http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#access-control-filter,您需要做的唯一的事情就是将对delete函数的访问限制在具有Creator角色的人身上。所有其他人都不能删除任何东西。
您的函数应该看起来像
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
........
[
'actions' => ['save', 'update', 'status', 'activate-all', 'deactivate-all'], // Define specific actions
'allow' => true, // Has access
'roles' => ['Admin', 'Creator'],
],
[
'actions' => ['delete', 'delete-all'], // Define specific actions
'allow' => true, // Has access
'roles' => ['Creator'],
],
[
'allow' => false, // Do not have access
'roles' => ['?'], // Guests '?'
],
],
],
];
}这只是一个例子,修改它以适应您自己的需要。您可能也不应该允许管理员编辑创建者,因为更改密码与删除几乎是一回事。
https://stackoverflow.com/questions/28095051
复制相似问题