Задать вопрос

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

Коллеги, доброй ночи!

Есть практика проверки разрешений в методе контроллера?
Я об этом:

Метод в контроллере
public function delete()
{
        $this->checkPermission($this->getRole('email'), Action::DELETE);  // Проверка 
        ...
}


Я подмешал в базовый контроллер методы проверки разрешений с помощью "Trait"
Теперь во всех контроллерах появился метод checkPermission
checkPermission принимает следующие параметры

1 - Роль
2 - Действие

То есть, в методе, который хотим проверить разрешение, а можно ли текущему юзеру использовать этот метод

Если да, то не мешаем
Если нет то из трейта кидаем исключение или сразу отдаём сообщение.
  • Вопрос задан
  • 105 просмотров
Подписаться 2 Простой Комментировать
Решение пользователя kafkiansky К ответам на вопрос (2)
mad_maximus
@mad_maximus
Трейт тут избыточен, используйте DI. Да, в контроллере можно проверять права, так делает симфони, например.
Ответ написан