Intereting Posts
Может ли PHP «писать» или «копировать» на удаленном удаленном ресурсе, но не «отключать» или «переименовывать» («Доступ запрещен») Получить параметры объекта Поле в веточке PHP Curl не хранит эхо-данные json_encoded Доктрина: расширение класса сущностей PHP json_encode Проблема с обратным слэшем и именем массива Шаблоны для многопроцессорных процессов PHP? Как войти на страницу администратора в PHP Foreach с многомерным массивом – Laravel Blade templating Можно ли сделать «инъекцию php»? Платежный шлюз MediaWiki sql table, как многоточечный массив чисел, извлекаемых из таблицы sql и хранящихся в массиве и возвращаемых Заменить значения в строке запроса URI Соединение базы данных MySQL не закрыто: что произойдет? CodeIgniter Две таблицы Left Join не возвращает идентификатор условия соединения левой таблицы при пропуске в правой таблице Что такое хороший Ruby on Rails и PHP-хостинг?

Предотвращение входа пользователей из неавторизованной области

Чтобы избежать ошибок 403, когда пользователь пытается получить доступ к запрещенной зоне и не позволяет пользователю войти в эту область, мне нужно запретить пользователям регистрироваться, если у вас нет соответствующих учетных данных.

Позвольте мне объяснить немного лучше, предположим, что я пользователь ROLE_USER X , пользователь X может получить доступ к интерфейсу, но не должен иметь возможности входа в бэкэнд, так же как у нас есть пользователь Y и ROLE_ADMIN , пользователь Y может войти в бэкэнд но не в интерфейсе, понимаете меня? Как я могу это сделать?

    допустим, что я пользователь Адам с ролью «ROLE_ADMIN». Я не могу войти в интерфейс.

    Вы должны просто добавить этот код к своим контроллерам:

      if( $this->get('security.context')->isGranted('YOUR ROLE') ) return new Response('yea!'); 

    Итак, если вы хотите защитить BackendController и разрешить логин пользователям с помощью «ROLE_ADMIN», вы должны добавить этот код:

     if( $this->get('security.context')->isGranted('ROLE_ADMIN') ) return new Response('You are granted to see this site.'); 

    Этот код проверяет, имеет ли текущий пользователь (меня) роль ROLE_ADMIN. Если вы хотите проверить, имеет ли пользователь «ROLE_ADMIN» и не имеет «ROLE_USER», просто добавьте:

     $security = $this->get('security.context'); if( $security->isGranted('ROLE_ADMIN') && !$security->isGranted('ROLE_USER') ) return new Response('You are not granted to see this site.'); 

    Предполагая, что ваши маршруты правильно защищены , вам нужно скрыть / показать ссылки на ограниченные области в ваших шаблонах ветви.

    Из документа Symfony2 :

     {% if is_granted('ROLE_ADMIN') %} <a href="...">LogIntoBackend</a> {% endif %} 

    Связанный :

    • Функции безопасности Symfony2 в Twig? Как проверить роль пользователя?
    • Symfony2: Как скрыть ссылку в Twig на основе разрешений