如何更改/更新用户角色?Yii2

use*_*975 5 yii2-user yii2-rbac yii2-user-roles

我正在使用基于yii2角色的访问控制(RBAC)系统.我定义了角色和权限,定义了规则,为用户分配了角色.一切正常.

但我想更新分配给用户的角色.例如:

Yii::$app->authManager->assign('admin', '11');
Run Code Online (Sandbox Code Playgroud)

在这里,我做了用户ID 11管理员.现在我想更新和更改.我想成为这个用户经理.

当我尝试:

Yii::$app->authManager->assign('manager', '11');
Run Code Online (Sandbox Code Playgroud)

此用户有admin + manager.我只想将此用户角色admin更新为manager.

我怎样才能做到这一点?

jit*_*hin 4

首先您revoke()revokeAll()用户角色:

删除当前角色“admin”:

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

并再次更新用户的新角色:

$authorRole = $manager->getRole('manager');
$manager->assign($authorRole, 11);
Run Code Online (Sandbox Code Playgroud)