Как изменить / обновить роль пользователя? Yii2

Я использую систему управления доступом на основе ролей yii2 (RBAC). Я определил роли и разрешения, определил правила, назначил роли пользователям. Все отлично работает

но я хочу обновить назначенные роли для пользователей. Например:

Yii::$app->authManager->assign('admin', '11');

Здесь я сделал ID пользователя 11 администратора. Теперь я хочу обновить и изменить. Я хочу сделать этот менеджер пользователей.

Когда я пытаюсь:

Yii::$app->authManager->assign('manager', '11');

У этого пользователя есть администратор + менеджер. Я просто хочу обновить эту роль пользователя администратора до менеджера.

Как я могу это сделать?

1 ответ

Сначала вы запускаете роль пользователя revoke() или revokeAll():

Удалить текущую роль "администратор":

$manager = Yii::$app->authManager;
$item = $manager->getRole('admin');
$item = $item ? : $manager->getPermission('admin');
$manager->revoke($item,'11');

и снова обновите новую роль для пользователя:

$authorRole = $manager->getRole('manager');
$manager->assign($authorRole, 11);
Другие вопросы по тегам