Как вернуть 401 код вместо 404 для неавторизированного посетителя

#MODx, #MODx Revo
Как вернуть 401 код вместо 404 для неавторизированного посетителя

В MODX Revolution есть понятие "Группы ресурсов" - ресурсы, которые доступны для определенных Групп пользователей (как правило, авторизированных). Но если не залогиненный пользователь пытается получить доступ к странице из такой группы - MODX возвращает 404 ошибку вместо 401.

Как вернуть 401 код вместо 404

Для страниц, где важно неавторизированному пользователю отображать форму для входа вместо 404 страницы, можно отказаться от использования группы ресурсов и в начало шаблона встроить свой рукописный некешируемый сниппет. Код такого сниппета приведен ниже:

if (isset($modx->user->id) && $modx->user->id > 0 // user must be logged in
    && ( $modx->user->isMember('Пользователи') 
        || $modx->user->isMember('Administrator') )){
        // user вошел как пользователь или админ - все ок
        return;
}
// не ок - возвращаем 401 ошибку
$modx->sendUnauthorizedPage();

Количество просмотров: 87

Автор статьи: Екатерина Шушкевич.

Руководитель проектов, технический директор, практикующий разработчик, преподаватель. Опыт в WEB-разработке — более 10 лет.

Поделиться в соцсетях: