2016-06-04 15 views
5

Używam systemu kontroli dostępu opartego na rolach yii2 (RBAC). Zdefiniowałem role i uprawnienia, zdefiniowałem reguły, przypisałem role użytkownikom. Wszystko dziala.Jak zmienić/zaktualizować rolę użytkownika? Yii2

ale chcę zaktualizować przypisane role użytkownikom. Na przykład:

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

Tutaj zrobiłem identyfikator użytkownika 11 admin. Teraz chcę zaktualizować i zmienić. Chcę zrobić tego menedżera użytkowników.

Kiedy próbuję:

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

Ten użytkownik ma admina + menedżera. Chcę tylko zaktualizować tę rolę administratora do menedżera.

Jak mogę to zrobić?

Odpowiedz

3

pierwszym revoke() lub revokeAll() rola użytkownika:

Usuń obecna rola 'admin':

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

i ponownie zaktualizować nową rolę do użytkownika:

$authorRole = $manager->getRole('manager'); 
$manager->assign($authorRole, 11); 
Powiązane problemy