Symfony2 права доступа к функционалу сайта. Какие механизмы использовать? Добрый вечер Тостер!
Например нужно реализовать проверку капчи для обычного юзера, но не проверять для админа и т.п.
Как правильнее это реализовать, логигу проверки капчи: описывать прямо в контроллере или выносить проверку куда-то во вне? Куда\как общепринято?
Капчу я оформил как сервис .А как оформить когда нужно/не нужно пользоваться сервисом капчи?
UPD: Удалось найти возможность в SF2 создавать поле в type form не прикрепленное к entity,
т.е есть возможность проверять это поле не используя entity полученных данных//namespace AppBundle\Form\Type;
//src: ...types/type.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name')->add('Поиск', 'submit');
if (1)//if from $options
{
$builder->add('recaptcha', 'ewz_recaptcha', array(
'mapped' => false,
'constraints' => array(
new RecaptchaTrue()
)
)); }
}
Бандл с рекапчей https://github.com/excelwebzone/EWZRecaptchaBundle

21 Авг 2019 в 07:06
194 +1
0
Ответы
1

Для реализации прав доступа к функционалу сайта в Symfony2 можно использовать различные механизмы, такие как:

Аннотации доступа в контроллерах: можно использовать аннотации @Security и @IsGranted для установления прав доступа к определенным методам контроллеров.

Система ролей и разрешений: можно определить различные роли пользователей (например, ROLE_USER, ROLE_ADMIN) и задать соответствующие разрешения для доступа к функционалу сайта.

Создание пользовательского провайдера безопасности: можно создать собственный класс, расширяющий Symfony\Component\Security\Core\User\UserProviderInterface, для управления проверкой прав доступа.

Сервисы для проверки доступа: можно вынести логику проверки доступа в отдельный сервис, который будет использоваться для определения прав доступа в различных частях приложения.

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

В случае, если вы не хотите использовать капчу для админа, вы можете добавить условие для проверки роли пользователя (админ или обычный пользователь) перед вызовом сервиса капчи. Например, вы можете проверить роль пользователя перед добавлением капчи в форму или перед выполнением действия, требующего проверку капчи.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 913 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир