2016-06-04 19 views
5

Tôi đang sử dụng hệ thống kiểm soát truy cập dựa trên vai trò yii2 (RBAC). Tôi đã xác định vai trò và quyền, quy tắc được xác định, vai trò được gán cho người dùng. Mọi thứ đều hoạt động tốt.Làm cách nào để thay đổi/cập nhật vai trò người dùng? Yii2

nhưng tôi muốn cập nhật vai trò được gán cho người dùng. Ví dụ:

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

Ở đây tôi đã làm người dùng id 11 quản trị viên. Bây giờ tôi muốn cập nhật và thay đổi. Tôi muốn làm người quản lý người dùng này.

Khi tôi cố gắng:

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

Thành viên này có admin + quản lý. Tôi chỉ muốn cập nhật quản trị viên vai trò người dùng này cho người quản lý.

Tôi làm cách nào để thực hiện việc này?

Trả lời

3

đầu tiên bạn revoke() hoặc revokeAll() sử dụng vai trò:

Hủy bỏ vai trò hiện tại 'admin':

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

và một lần nữa cập nhật vai trò mới cho người sử dụng:

$authorRole = $manager->getRole('manager'); 
$manager->assign($authorRole, 11); 
Các vấn đề liên quan