限制删除 yii2-user 中的特定用户
Restrict Delete Specific User in yii2-user
我正在使用 yii2-admin
和 yii2-user
。我创建了一个可以访问所有内容的角色 Creator
。还有另一个名为 Admin
的角色,其访问权限有限。但有删除用户的权力。现在我想限制 Admin
删除 Creator
。我知道这可以通过覆盖 yii2-user
的 AdminController
的 delete
函数来实现。但我无法弄清楚限制 Admin
或任何其他用户删除 Creator
.
的逻辑
提前致谢!
看这里:http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#access-control-filter
您唯一需要做的就是将删除功能的访问权限限制为具有 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 '?'
],
],
],
];
}
这只是一个示例,您可以根据自己的需要进行修改。也许您不应该允许管理员也编辑创建者,因为更改密码几乎与删除相同。
我正在使用 yii2-admin
和 yii2-user
。我创建了一个可以访问所有内容的角色 Creator
。还有另一个名为 Admin
的角色,其访问权限有限。但有删除用户的权力。现在我想限制 Admin
删除 Creator
。我知道这可以通过覆盖 yii2-user
的 AdminController
的 delete
函数来实现。但我无法弄清楚限制 Admin
或任何其他用户删除 Creator
.
提前致谢!
看这里:http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#access-control-filter 您唯一需要做的就是将删除功能的访问权限限制为具有 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 '?'
],
],
],
];
}
这只是一个示例,您可以根据自己的需要进行修改。也许您不应该允许管理员也编辑创建者,因为更改密码几乎与删除相同。