我正在使用基于yii2角色的访问控制(RBAC)系统。我定义了角色和权限,定义了规则,为用户分配了角色。一切正常。
但我想更新已分配的角色给用户。例如:
home
这里我做了用户ID 11 admin。现在我想更新和更改。我想成为这个用户经理。
当我尝试:
Yii::$app->authManager->assign('admin', '11');
此用户有admin + manager。我只想将此用户角色admin更新为manager。
我该怎么做?
答案 0 :(得分:3)
首先是revoke()或revokeAll()用户角色:
删除当前角色'admin':
$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);