Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 09.10.2016 23:38:28

Вопрос по реализации ролей

Всем привет!

Стоит задача реализовать пользователей с разделением по ролям:

Группа 1:

  • администраторы / админка
  • редакторы / админка
  • партнеры / админка

Группа 2:

  • покупатели / сайт

Как правильно поступить, реализовывать всех в рамках существующей системы пользователей в laravel? Или же под одну их групп писать отдельную систему авторизации?

Уровни доступа распределяются так:

  • администраторы, редакторы и партнеры имеют вход в админку
  • администраторы — все разделы админки с возможностью управления
  • редакторы — выборочные разделы админки
  • партнеры — выборочные разделы админки
  • партнеры — имеют дополнительные поля с параметрами
  • покупатели — логично,что это те, кто оформляют заказ через сайт. Соответственно так же имеют отдельные поля и связки с покупками.

Изменено kamwork (09.10.2016 23:39:39)

Не в сети

#2 10.10.2016 13:58:06

Re: Вопрос по реализации ролей

SleepingOwl частично решит эту проблему, если не полностью.
Оно же и Админка.

Не в сети

#3 10.10.2016 14:20:03

Re: Вопрос по реализации ролей

hzone пишет:

SleepingOwl частично решит эту проблему, если не полностью.
Оно же и Админка.

Не хочу ее

Изменено kamwork (10.10.2016 14:20:15)

Не в сети

#4 10.10.2016 14:50:16

Re: Вопрос по реализации ролей

kamwork пишет:
hzone пишет:

SleepingOwl частично решит эту проблему, если не полностью.
Оно же и Админка.

Не хочу ее

тогда не ной и пиши свой продукт с нуля.
я верю в тебя.

Не в сети

#5 10.10.2016 14:51:48

Re: Вопрос по реализации ролей

hzone пишет:
kamwork пишет:
hzone пишет:

SleepingOwl частично решит эту проблему, если не полностью.
Оно же и Админка.

Не хочу ее

тогда не ной и пиши свой продукт с нуля.
я верю в тебя.

А где ты увидел нытье? Стоит вопрос как лучше сделать.

Изменено kamwork (10.10.2016 14:51:54)

Не в сети

#6 10.10.2016 18:27:01

Re: Вопрос по реализации ролей

Если система ролей не очень навороченная, я делаю так:

- поле role в users
- все не общие маршруты под auth посредника
- под каждый закрытый раздел свой посредник с проверкой ролей, которые имеют доступ к конкретному разделу

В таком случае проверять роль довольно просто с помощью глобального фасада Auth::, либо помощника auth()

if (auth()->user()->role === 2) // Если доступ у одного типа пользователей.
if (in_array(auth()->user->role, [3, 4, 7])) // Если доступ у нескольких типов пользователей.

Решение очень простое в плане реализации и поддержки. Мне такой подход нравится больше, чем использование известных пакетов.

Не в сети

#7 11.10.2016 03:47:41

Re: Вопрос по реализации ролей

Алексей предложил хорошее решение. Только я все таки бы сделал классический вариант роль-права со связями многие ко многим. Работы не намного больше, а потом при необхожимости, не надо будет ничего перепиливать.

P.S. У каждой роли одно право доступа по умолчанию.

Не в сети

Подвал раздела