РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
166 of 1361 menu

Метод denyAccessUnlessGranted

Метод denyAccessUnlessGranted принадлежит базовому классу AbstractController и используется для проверки прав доступа текущего пользователя к ресурсу. Если пользователь не обладает требуемыми правами, метод выбрасывает исключение AccessDeniedException, которое Symfony автоматически преобразует в ответ с кодом 403 или перенаправление на страницу входа. Первым параметром передаётся атрибут доступа, вторым - субъект (объект, к которому проверяется доступ), третьим - сообщение об ошибке.

Синтаксис

denyAccessUnlessGranted(attribute, subject: null, message: 'Access Denied.')

Пример

Давайте проверим, что текущий пользователь имеет роль ROLE_ADMIN, и вернём ответ только в случае успеха:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/admin', name: 'article_admin')] public function admin(): Response { $this->denyAccessUnlessGranted('ROLE_ADMIN'); return new Response('hello'); } } ?>

Результат выполнения кода для пользователя с ролью ROLE_ADMIN:

hello

Пример

Давайте передадим субъект доступа, чтобы проверить право на конкретный объект:

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(Article $article): Response { $this->denyAccessUnlessGranted('VIEW', $article, 'Access Denied.'); return new Response('article'); } } ?>

Результат выполнения кода при наличии права VIEW:

"article"

Смотрите также

  • класс AbstractController,
    который предоставляет базовые методы контроллера
  • метод isGranted,
    который возвращает результат проверки прав
  • метод getUser,
    который возвращает текущего пользователя
  • метод redirectToRoute,
    который выполняет перенаправление на маршрут
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить