How to change / update user role? Yii2

I am using the yii2 Role Based Access Control System (RBAC). I defined roles and permissions, certain rules, assigned roles to users. Everything is working fine.

but I want to update the assigned roles to users. For instance:

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

Here I made user id 11 admin. Now I want to update and change. I want to make this user manager.

When I try:

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

This user has an administrator + manager. I just want to upgrade this user admin role to admin.

How can i do this?

+5
source share
1 answer

first you revoke () or revokeAll () user role:

Delete the current 'admin' role:

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

and renew the new role for the user again:

 $authorRole = $manager->getRole('manager'); $manager->assign($authorRole, 11); 
+3
source

All Articles