Добрый день!
Вопрос по assignmentTable.
Эта таблица, как я понимаю, используется для присвоения конкретному пользователю какого либо права, роли.
Вопрос в следующем: один раз я создал права, роли, а в другой раз решил их поменять, но чтобы это сделать мне придется удалить все item_name в таблице и соответственно привязку к user_id (записи assignmentTable). Как это более правильно использовать, чтобы при изменении прав, ролей как то сохранять привязку конкретных пользователей к правам, ролям?
RBAC, assignmentTable
-
- Сообщения: 65
- Зарегистрирован: 2014.01.13, 10:03
Re: RBAC, assignmentTable
Правильно. Во время запуска скрипта, перед тем, как он набивает таблицы с ролями, их нужно очистить.
Код: Выделить всё
$auth = Yii::$app->authManager;
$auth->removeAll();
-
- Сообщения: 65
- Зарегистрирован: 2014.01.13, 10:03
Re: RBAC, assignmentTable
futbloim, спасибо! Но, интересует именно то, как сохранять привязку конкретных пользователей к правам и ролям. (и как более правильно). Например, я сделал assign к 1000 пользователям, и мне нужно добавить еще один permission(или role), но при этом оставить ту 1000 привязанную к правам (роли). Или здесь изначально лучше использовать Rule?futbolim писал(а):Правильно. Во время запуска скрипта, перед тем, как он набивает таблицы с ролями, их нужно очистить.Код: Выделить всё
$auth = Yii::$app->authManager; $auth->removeAll();
Re: RBAC, assignmentTable
Изначально, по-моему, лучше вообще не использовать assignmentTable, а просто создать свой класс дбМенеджер и переопределить метод getAssignment в котором присваивать роль по полю из модели юзера.
Код: Выделить всё
public function getAssignment($userId)
{
if ( ! Yii::$ app-> user-> isGuest){
$assignment = new \yii\rbac\Assignment;
$assignment->userId = $userId;
$assignment->roleName = Yii::$ app-> user->identity->role;
return [$ assignment-> roleName => $ assignment];
}
}
Re: RBAC, assignmentTable
А почему лучше не использовать? Ну кроме того, что так по старинке.VaNnOrus писал(а):лучше вообще не использовать assignmentTable
Re: RBAC, assignmentTable
Да, я погорячился. Просто сейчас сам наконец дошел до работы с ролями. Переопределять метод как я сказал не правильно, смотрите последние сообщения в этой теме.