Intereting Posts
Установка часовой пояс по умолчанию не работает, несмотря на то, что часовой пояс действителен Результат игры в покер php array CakePHP: несколько наборов полей для загрузки файлов необходимо автоматически Использование .htaccess для установки подкаталога в качестве корневого каталога разделять строку после символов x Как интегрировать array_column () и array_filter () – блокировать динамическое создание таблицы sql-результатов Предупреждение: mysqli_connect (): (28000/1045): доступ запрещен для пользователя Foreach и 2D Array в PHP Проверка даты в codeigniter Примечание. Неверно сформированное числовое значение, встречающееся в C: \ xampp \ htdocs \ Space \ Find \ index.php в строке 21 Хранение файлов скриптов вне веб-корневого каталога jQuery $ .ajax запрос dataType json не будет извлекать данные из скрипта PHP Функция PHP для захвата Featured Image (WordPress) и интеграции в Pinterest Button Коды Php показаны в исходниках Ограничить прямой доступ к странице

Лучшая практика, позволяющая получать доступ только к владельцам и администраторам?

Я программирую сайт в Symfony2, используя FOSUserBundle для управления доступом пользователей. У меня есть объект под названием «Сайт», который может иметь много пользователей. Только связанные пользователи и администраторы должны иметь доступ к сайту: показать действие.

Я не знаю, можно ли это сделать в security.yml или если я должен сделать это прямо в контроллере или где-то еще. Каков рекомендуемый способ?

Благодарю.

Если вы хотите ограничить доступ для каждого пользователя на уровне объекта, то вы ищете ACL . ProblematicAclManagerBundle – прекрасная оболочка, упрощающая использование ACL в контроллерах.

В противном случае, если вы хотите ограничить доступ для каждой роли, вы можете использовать маршруты и роли, определенные в security.yml

Вот пример того, как он должен выглядеть:

 access_control: - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin, role: ROLE_ADMIN } - { path: ^/.*, role: [IS_AUTHENTICATED_ANONYMOUSLY] } 

В вашем контроллере вы также можете использовать:

 use JMS\SecurityExtraBundle\Annotation\Secure; /** * @Route("/home", name="home") * @Secure(roles="ROLE_USER") */ public function indexAction() { ... }