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

时间:2016-06-04 07:35:15

标签: yii2-user yii2-rbac yii2-user-roles

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

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

home

这里我做了用户ID 11 admin。现在我想更新和更改。我想成为这个用户经理。

当我尝试:

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

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

我该怎么做?

1 个答案:

答案 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);