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

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

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

Синтаксис

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

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(AuthorizationCheckerInterface $authChecker): Response { if ($authChecker->isGranted('ROLE_ADMIN')) { return new Response('admin access'); } return new Response('user access'); } } ?>

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

"admin access"

Пример

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

<?php namespace App\Controller; use App\Entity\Article; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(Article $article, AuthorizationCheckerInterface $authChecker): Response { if ($authChecker->isGranted('EDIT', $article)) { return new Response('edit allowed'); } return new Response('edit denied'); } } ?>

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

"edit allowed"

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

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