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

Метод isGranted класса Security

Метод isGranted класса Security проверяет, имеет ли текущий пользователь указанное право доступа. Первым параметром передаётся атрибут (роль или правило), вторым - субъект, для которого проверяется право. Метод возвращает true, если доступ разрешён, и false в противном случае.

Синтаксис

public function isGranted(mixed $attribute, mixed $subject = null): bool

Пример

Давайте проверим, имеет ли текущий пользователь роль 'ROLE_ADMIN':

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyBundleSecurityBundleSecurity; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Security $security): Response { if ($security->isGranted('ROLE_ADMIN')) { return new Response('admin access'); } return new Response('access denied'); } } ?>

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

"admin access"

Пример

Давайте проверим право на редактирование конкретной статьи, передав её вторым параметром:

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyBundleSecurityBundleSecurity; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_edit')] public function edit(Article $article, Security $security): Response { if ($security->isGranted('EDIT', $article)) { return new Response('edit allowed'); } return new Response('edit denied'); } } ?>

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

"edit allowed"

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

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