Как сделать авторизацию и регистрацию в RBAC

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Закрыто
Аватара пользователя
Introvert
Сообщения: 139
Зарегистрирован: 2017.07.04, 13:42
Откуда: Украина, Киев

Как сделать авторизацию и регистрацию в RBAC

Сообщение Introvert »

Добрый вечер! Никак не могу разобраться с RBAC, вот как на нем сделать авторизацию и регистрацию? Не изменяя vendor. В web.php это выбираем ссылку и подключаем свою форму

Код: Выделить всё

'loginUrl' => ['rbac/user/login'],
А что такое 'identityClass' => 'mdm\admin\models\User', и как оставить только права, а авторизацию и регистрацию свою сделать без использования стандартной в модуле? Или как стандартной тогда пользоваться, модифицировать её под себя, форму свою задать, сессии, вывод имени, фамилии новые поля добавить.

Если б не RBAC свою бы написал и все, а так там права доступа хранятся для юзеров, удобно использовать этот мод, но осталась лишь проблема авторизации и регистрации. Или ладно готов на изменения в папки vendor только бы допилить все
Пишу социальную сеть заявок для фирм.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как сделать авторизацию и регистрацию в RBAC

Сообщение Nex-Otaku »

RBAC нужен для ограничения доступа к определённым действиям или страницам по ролям пользователей. Для "регистрации и авторизации" он не используется, авторизация и регистрация уже есть в стандартном приложении.

RBAC нужен только при условии, что логика вашего приложения требует более гибкой проверки, чем "залогиненный пользователь" либо "гость". Если вам не нужно настраивать разные уровни доступа для разных групп зарегистрированных пользователей, RBAC вам не нужен. Просто проверку ставите:

Код: Выделить всё

Yii::$app->user->isGuest;
Если же у вас есть, например, "администратор", "модератор", "разработчик" и у каждого предполагается свой набор возможных действий, делайте роли через RBAC. Проверки будут такие:

Код: Выделить всё

if ($user->can('administrator')) {
Всё, что нужно сделать для подключения RBAC - настроить любой из вариантов RBAC-менеджера (в БД либо в файлах), создать роли, привязать их к пользователям, и в коде прописать проверки на роли. Всё.

Для удобного редактирования ролей и прав доступа можно использовать расширения, например https://github.com/mdmsoft/yii2-admin

Для управления пользователями тоже есть хорошие расширения, например https://github.com/dektrium/yii2-user

Вот инструкция для установки того и другого на advanced-приложение http://nex-otaku-ru.blogspot.ru/2016/09 ... admin.html
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Как сделать авторизацию и регистрацию в RBAC

Сообщение chesar »

Вот хорошее расширение
https://github.com/2amigos/yii2-usuario
Аватара пользователя
Introvert
Сообщения: 139
Зарегистрирован: 2017.07.04, 13:42
Откуда: Украина, Киев

Re: Как сделать авторизацию и регистрацию в RBAC

Сообщение Introvert »

Nex-Otaku писал(а): 2017.07.31, 21:26 RBAC нужен для ограничения доступа к определённым действиям или страницам по ролям пользователей. Для "регистрации и авторизации" он не используется, авторизация и регистрация уже есть в стандартном приложении.

RBAC нужен только при условии, что логика вашего приложения требует более гибкой проверки, чем "залогиненный пользователь" либо "гость". Если вам не нужно настраивать разные уровни доступа для разных групп зарегистрированных пользователей, RBAC вам не нужен. Просто проверку ставите:

Код: Выделить всё

Yii::$app->user->isGuest;
Если же у вас есть, например, "администратор", "модератор", "разработчик" и у каждого предполагается свой набор возможных действий, делайте роли через RBAC. Проверки будут такие:

Код: Выделить всё

if ($user->can('administrator')) {
Всё, что нужно сделать для подключения RBAC - настроить любой из вариантов RBAC-менеджера (в БД либо в файлах), создать роли, привязать их к пользователям, и в коде прописать проверки на роли. Всё.

Для удобного редактирования ролей и прав доступа можно использовать расширения, например https://github.com/mdmsoft/yii2-admin

Для управления пользователями тоже есть хорошие расширения, например https://github.com/dektrium/yii2-user

Вот инструкция для установки того и другого на advanced-приложение http://nex-otaku-ru.blogspot.ru/2016/09 ... admin.html
Да, именно этот и поставил /mdmsoft/yii2-admin, на basic версии работаю. Настраивать разные уровни доступа для разных групп зарегистрированных пользователей нужно. Я не пойму откуда оно берет это http://сайт/rbac/user/login и http://сайт/rbac/user/signup и как это изменить, форма отображается вот так, слева ненужное меню. Может это стандартную подхватывает?

Изображение
Пишу социальную сеть заявок для фирм.
Аватара пользователя
Introvert
Сообщения: 139
Зарегистрирован: 2017.07.04, 13:42
Откуда: Украина, Киев

Re: Как сделать авторизацию и регистрацию в RBAC

Сообщение Introvert »

chesar писал(а): 2017.07.31, 22:14 Вот хорошее расширение
https://github.com/2amigos/yii2-usuario
Спасибо, поюзаю
Пишу социальную сеть заявок для фирм.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как сделать авторизацию и регистрацию в RBAC

Сообщение Nex-Otaku »

Смотрите в модуле, как он прописывает маршруты. Как изменить - смотрите в исходниках модуля и в документации.
Аватара пользователя
Introvert
Сообщения: 139
Зарегистрирован: 2017.07.04, 13:42
Откуда: Украина, Киев

Re: Как сделать авторизацию и регистрацию в RBAC

Сообщение Introvert »

Всем спасибо помогло данное видео, только нужно внимательно смотреть и вникать в суть, иногда на видео не понятно что он сделал, нужно прокрутить раз 10 и тогда поймете что куда скопировал. https://www.youtube.com/watch?v=MTRUjYqZK2c&t=6s
Пишу социальную сеть заявок для фирм.
Закрыто