Доброго времени суток!
Скажите пожалуйста как обновить существующую запись в таблице auth_assignment
Как добавить я понял а как обновить, какой метод для этого есть и есть ли он вообще?
Как я добавляю:
//Метод создания ролей для зарегистрированного пользователя.
public function createUserRole(string $role)
{
$rbac = Yii::$app->authManager;
$user = $rbac->getRole($role);
$rbac->assign($user, UserRecord::findOne(['username' => $this->username])->id);
return true;
}
Но мне очень нужно понять, как обновить? Запрос на подобии:
UPDATE `auth_assignment` SET `item_name` = 'user' WHERE `auth_assignment`.`item_name` = 'admin' AND `auth_assignment`.`user_id` = '1';
То есть изменить роль Админа на Юзер и обратно(Изменять роли из админки)
Спасибо вам большое.
RBAC Обновление в табл. auth_assignment помогите!
Re: RBAC Обновление в табл. auth_assignment помогите!
Код: Выделить всё
$rbac->revokeAll($user->id);
$rbac->assign($role, $user->id);
Re: RBAC Обновление в табл. auth_assignment помогите!
Да благословит вас Господь!ElisDN писал(а): ↑2017.11.04, 00:05Код: Выделить всё
$rbac->revokeAll($user->id); $rbac->assign($role, $user->id);
Спасибо вам большое! Я очень вам благодарен.
Re: RBAC Обновление в табл. auth_assignment помогите!
Здравствуйте. Не хочу создавать новую тему. У меня есть окно редактирования пользователя. Хочу сделать проверку, не изменялось ли роль. Если изменилась, проведем обновление роли. Но как сделать проверку, не могу забрать из массива имя роли в строке
Код: Выделить всё
$role = Yii::$app->authManager->getRolesByUser($id);
Re: RBAC Обновление в табл. auth_assignment помогите!
Ну, во-первых, это не одна роль, а массив, а во-вторых, имя роли берёте либо из ключа массива, либо из объекта значения свойство "name".
Вы документацию-то хоть посмотрите: https://www.yiiframework.com/doc/api/2. ... r()-detail
Вы документацию-то хоть посмотрите: https://www.yiiframework.com/doc/api/2. ... r()-detail
Re: RBAC Обновление в табл. auth_assignment помогите!
Я знаю что это массив, у меня не получается выделить оттуда name.Nex-Otaku писал(а): ↑2018.05.18, 12:21 Ну, во-первых, это не одна роль, а массив, а во-вторых, имя роли берёте либо из ключа массива, либо из объекта значения свойство "name".
Вы документацию-то хоть посмотрите: https://www.yiiframework.com/doc/api/2. ... r()-detail
Array ( [director] => yii\rbac\Role Object ( [type] => 1 [name] => director [description] => Директор [ruleName] => [data] => [createdAt] => 1525549528 [updatedAt] => 1525549528 ) )
Последний раз редактировалось DronTat 2018.05.18, 17:05, всего редактировалось 1 раз.
Re: RBAC Обновление в табл. auth_assignment помогите!
Видимо вы не знаете основ языка PHP. Срочно восполняйте пробел. Читайте про массивы, объекты и свойства.
Код: Выделить всё
$roles = Yii::$app->authManager->getRolesByUser($id);
if (!empty($roles)) {
$role = $roles[0];
$name = $role->name;
}