IgorPI
@IgorPI

Организация распределения ролей пользователей?

Коллеги, добрый день!
Заинтересовал вопрос распределения ролей.
Прочитала пару тройку статей на эту тему.

В принципе, уже всё подготовил в своём приложении.
Создал примитивную систему Middleware.

Например:
В контроллере, в конструкторе я говорю программе.
Я хочу сначала верифицировать пользователя, а потом проверить его роль в системе

public function __construct(DI $di)
    {
        parent::__construct($di);
        $this->getMiddleware()
            ->execute(new Verification)
            ->execute(new ProtectMethods('add|get|delete'));
        
        $this->userRepository = new UserRepository($this->em);
    }


Middleware для проверки роли.
public function handle()
    {
        list($obj, $method) = explode(":", Common::getController());

        if (in_array($method, $this->methods)) {
            // здесь будем проверять, что разрешено или запрещено юзеру
        }
    }


Планирую что роль будет содержать маски

R - Чтение
W - Запись
V - Просмотр

Так-же планируется комбинация RW или RWV

Неужто будет проверка if else?

Как это делают адекватные люди?

Для понимания добавлю объект иерархии хранения информации

Объект отражает уровень нормализации базы данных!
5d31c6c000231140742595.png
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 2
xEpozZ
@xEpozZ
Веб-разработчик
Да, проверки будут if else, а как еще?

if (!$this->canView($user)) { 
    throw new Exception();
}
Ответ написан
Комментировать
IgorPI
@IgorPI Автор вопроса
Мой взгляд упал на rbac
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы