Я хотел бы программно перенаправить своих пользователей на страницу по умолчанию «доступ ограничен». Я знаю, что мне нужен объект "RedirectResponse" для простого перенаправления, но как мне здесь указать страницу по умолчанию с ограниченным доступом?
12
return new Response('', Response::HTTP_FORBIDDEN);
Ответы:
Вы можете вызвать исключение в любой точке вашего кода:
403:
404:
Затем исключение перехватывается с помощью DefaultExceptionHtmlSubscriber
/system/403
и/system/404
возвращается подзапрос для или возвращается, который можно настроить в основных настройках сайта, если вы не хотите отображать общую страницу «доступ запрещен» или «не найден».Другие параметры зависят от того, где находится код:
Возврат 403 или 404 ответа от контроллера или формы
Установите ответ в событии, если вы являетесь подписчиком события.
То, что вы никогда не должны делать, это отправлять ответ напрямую. Это не останавливает код и выдает два ответа, один из которых вы отправили, а другой вернул ядро Drupal. Это приведет к непредсказуемому поведению.
источник
Кажется, это правильный путь:
источник
Создайте свой редирект по системному маршруту с отказом в доступе.
Вы попадете на страницу со стандартным доступом в Drupal. Маршрут определен
system.routing.yml
в основном.Лучший ответ даст вам неправильный вид доступа на основе браузера, который может быть тем, что вы ищете. Если вы хотите, чтобы ваш Drupal UI показывал, используйте выше.
источник
Со страницы вы можете использовать:
как: http://www.drupal8.ovh/en/tutoriels/88/page-redirection-on-drupal-8
Или из отправки:
Затем настройте права доступа «your.module.route.name»
Если вы не знаете, как настроить разрешение доступа, проверьте: http://www.drupal8.ovh/en/tutoriels/66/create-a-custom-permission-drupal-8
источник