5

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

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

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

在这里,我做了用户 id 11 管理员。现在我想更新和改变。我想做这个用户管理器。

当我尝试:

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

这个用户有管理员+经理。我只想将此用户角色管理员更新为经理。

我怎样才能做到这一点?

4

1 回答 1

3

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

删除当前角色“管理员”:

$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);
于 2016-06-16T05:31:00.543 回答