@Arturbalagur

Как реализовать пользователей для админки?

Всем привет. Имеется сайт на котором есть обычные пользователи с кучей полей. Необходимо создать админку, я не могу понять как мне грамотно добавлять админов, модераторов и т.д.

1. Сделать отдельную таблицу и создавать "сотрудников" там.
Как я понял, авторизация проходит только по таблице "users". Это намек что все пользователи должны быть в одной таблице?
2. Создавать админов прямо в таблице "users" (вместе с обычными пользователями) и добавлять им права используя "Spatie".

Понимаю что есть готовые решения, для общего развития хочется разобраться. Подскажите или киньте в меня ссылку пожалуйста :)
  • Вопрос задан
  • 189 просмотров
Решения вопроса 3
Сделать поле (любое название) и давать им цифры, где 1 - это админ, 2 модераторы ну и 0 обычны пользователь.
Ответ написан
Вообще не проблема авторизоваться из разных таблиц
Делаете для админки новую страницу входа
В config/auth добавляете нового Охранника

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        // новый
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
    ],

Там же пропивывайте нового провайдера с доступом к нужной модели
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],

        // новый провайдер
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Models\Employee::class,
        ],
    ],


При авторизации использовать нового Охранника Auth::guard('admin')->attempt($credentials)

И все, у Вас в одной сессии могут существовать 2 пользователя в одном браузере

Минус такого подхода: Если админ захочет пользоваться сайтом как пользователь, то он должен зарегистрироваться как пользователь. Т.е. у него будет 2 учетки

Ну а дальше играйте ролями как хотите.
Ответ написан
Комментировать
delphinpro
@delphinpro
frontend developer
Когда у вас одна роль Admin - вполне можно сделать доп поле в таблице юзеров.
Если ролей несколько, пользователи могут иметь несколько ролей, и у каждой роли свой набор разрешений, то лучше смотреть в сторону RBAC

users
roles
permissions
role_user
permission_role


https://qna.habr.com/q/1164808#answer_2180972
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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