Ограничить удаление определенного пользователя в yii2-пользователя

я использую yii2-admin а также yii2-user, Я создал роль Creator у кого есть доступ ко всему. Есть еще одна роль, которая называется Admin которые имеют ограниченный доступ. Но есть возможность удалять пользователей. Теперь я хочу ограничить Admin от удаления Creator, Я знаю, что это может быть достигнуто путем переопределения delete функция AdminController из yii2-user, Но я не могу понять логику ограничения Admin или любой другой пользователь от удаления Creator,

Заранее спасибо!

0

Решение

Посмотрите здесь: http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#access-control-filter
Единственное, что вам нужно сделать, это ограничить доступ к функции удаления для людей, имеющих роль Создателя. Все остальные не смогут ничего удалить.

ваша функция должна выглядеть

    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 '?'
],
],
],
];
}

Это всего лишь пример, измените его в соответствии со своими потребностями. Возможно, вы не должны позволять администратору редактировать Creator тоже, так как смена пароля будет почти то же самое, что и удаление.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]