@kvninbox

PHP Yii2 Framework — пользователи & расширение User модели / extend User model?

Всем привет,
Вопрос по best practice Yii2 Framework - или как лучше сделать?

1. есть веб-проект на базе advanced-template , в нем 2 типа юзеров:
1.1. админы (админы, манагеры, модеры) - для них сделал отдельную модель SystemUser, прицепил к ней RBAC - все работает - роли, юзеры, CRUD-admin к ним - @backend отрабатывает.

1.2. Юзеры сайта frontend : гость, ученик (обычный юзер), учитель (тоже обычный, но тип юзера другой, у него другой будет личный каб) - таких юзеров планировал оставить в рамках стандартной модели User.php, которая идет с темплейтом.
Но для обычных сайтовых юзеров мне нужно чтобы регистрация была не по логину, а по емейл+пароль, добавить поля типа "аватар, о себе и другие текстовые", добавить подтверждение регистрации по емейл и подобные стандартные фичи

2. Так вот нужен консалт на уровне - как правильно сделать?
2.1. оставить системых юзеров отдельно, и ручками расширить User.php? как то не рационально вроде тратить время на давно известные вещи
2.2. оставить системных юзеров и для веб юзеров поставить модули, расширяющие их?
вот тут вроде пару популярных:
https://github.com/yii2mod/yii2-user
https://github.com/dektrium/yii2-user
Там вроде большая часть есть функционала уже есть. Если так лучше, то какие модули более популярны?

2.3. снести все нафиг по юзерам, поставить какой то из модулей и хранить всех юзеров в одной таблице? Если та, то вопрос по модулю - какой лучше?

2.4. Свой вариант архитектурного решения, рекомендации и т.п.
  • Вопрос задан
  • 475 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
1. Зачем разные таблицы юзеров в зависимости от группы? Правильнее всех юзеров хранить в одной таблице + RBAC.

2. Рекомендую использовать https://github.com/dektrium/yii2-user
2.1. Доп. поля - в таблице Profile. Кстати, многое там уже есть
2.2. Авторизация по email+пароль и через соцсети тоже работает из коробки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы