Как программно вызвать 403 Access Denied в модуле

Тип материала: 
Версия Drupal: 
Ключевые слова: 
Сб, 21/05/2016 - 10:21

Нужно при некоторых условиях в функции модуля выдать страницу 403. Но что-то рецепты 6-ки совсем не работают.
Пробовал<?php drupal_access_denied();?> - зависает, входит в цикл, <?php return drupal_access_denied(); ?>аналогично, <?php drupal_deliver_html_page(MENU_NOT_FOUND);?> - тоже самое.
В 6-ке все норм работало, как в семерке это корректно сделать при произвольных ситуациях в коде?

0 Спасибо

Комментарии

Аватар пользователя goodboy
8 months 3 дня назад goodboy #

А вот так
drupal_add_http_header('Status', '403 Forbidden');

0 Спасибо
Аватар пользователя xakd
8 months 3 дня назад xakd #

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

0 Спасибо
Аватар пользователя negociant
8 months 3 дня назад negociant #
drupal_access_denied();
drupal_exit();

и указали бы где конкретно пытаетесь вызывать drupal_access_denied().

0 Спасибо
Аватар пользователя xakd
8 months 3 дня назад xakd #

Уберите из настроек адрес 403 - и попробуйте, циклится в итоге. Где не пробуй - пробовал в THEME_preprocess_page, пробовал в MODULE_init - бесполезно, пока не допетрил, что адрес можно попробовать ввести в настройки для 403.

0 Спасибо