Страница по умолчанию для ошибки 403 (доступ закрыт)

Аватар пользователя voviko voviko 21 февраля в 18:51

Доброго времени суток.
В основных настройках сайта можно добавить ссылку на страницу, которая будет отображаться при "доступ закрыт"
Можно как нибудь её хакнуть? правила описаны в hook_node_access.

Комментарии

Аватар пользователя voviko voviko 21 февраля в 23:31

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

Аватар пользователя voviko voviko 22 февраля в 8:59

Также подойдет решение если установить на каждый forbidden() свою страницу

Аватар пользователя voviko voviko 22 февраля в 10:11

сейчас работает через \Drupal::messenger()->addWarning, но хотелось бы изменить title и body

Аватар пользователя gun_dose gun_dose 22 февраля в 23:49

Создай ноду и назначь её в качестве 403 страницы в основных настройках сайта. Только по хорошему надо поставить ещё rabbit hole и указать, чтобы эта нода сама тоже отдавала 403 код на случай, если кто-то на неё забредёт случайно.

Аватар пользователя voviko voviko 23 февраля в 10:33
<?php
                    $url 
Url::fromRoute('entity.node.canonical', ['node' => 111]);
                    
$response = new RedirectResponse($url->toString());
                    
$response->send();
                   
// return AccessResult::forbidden();
?>

Вот такое решение в hook_node_access. Является ли безопасным это решение для управления бизнес логикой?