LINUX.ORG.RU

Symfony 2.5 security module

 , ,


0

1

Всем привет. Поправьте меня, а то не знаю где допускаю ошибку.Если вкратце. На сайте есть две группы пользователей, пусть это будет group_1 and group_2, нужно разграничить им доступ к страницам, ну одна группа может иметь доступ к этой странице, другая естественно - нет. Скажу сразу doctrine не используется, в силу принятия старым руководством такого решения, теперь увы работаем с чем есть. Начал я значит разбираться с security модулем, в конфиге сделал как и в примере:

security:
    providers:
        in_memory:
            memory: ~

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        default:
            anonymous: ~

    access_control:
       - { path: ^/billing, roles: [ROLE_GROUP_1]}
Такие вот роли у меня в базе для конкретных юзеров и есть, как советуют в примере, чтобы security модуль мог их обработать. Далее пошел тестировать это дело, уже в конкретном action что отвечает за url - billing, я использую:
if (!$this->get('security.context')->isGranted('ROLE_GROUP_1')) {
            throw $this->createAccessDeniedException();
        }

Далее уже залогинен в системе я перехожу по этой ссылке и получаю такое вот:
You have requested a non-existent service "security.context".
Гугление толком ничего не дало, Security Bundle включен, как сделать - это честно не знаю. В чем ошибка тоже сложно сказать. Symfony версия 2.5


Надо подключить сервис security. По-моему это где то в kernel.php, но я не помню точно

Chubakur ★★
()

SecurityContext объявили устаревшим в пользу TokenStorage и AuthorizationChecker. Тебе нужен AuthorizationChecker. Это известно еще с прошлого года. Только вот странно, почему сервис не доступен, ведь его должны были удалить только в третьей версии.

Kilte ★★★★★
()
Ответ на: комментарий от Kilte

SecurityBundle подключен

$bundles = array(
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Bundle\SecurityBundle\SecurityBundle(),
            ........
Ну и так далее.

Berdin
() автор топика
Ответ на: комментарий от Berdin

В том или ином случае, всё равно надо заменить security_context на authorization_checker. Загляни в доку что-ли.

Kilte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.