@sergey_privacy
Админ со стажем, начинающий DevOps

Почему Modx Revolution неправильно показывает статус авторизации пользователя?

Добрый вечер!
Установлен сервер Modx Revolution. На странице вставляю конструкцию
[[!+modx.user.id:isloggedin:is=`1`:then=`Вход и регистрация`:else=`Пользователь: [[+modx.user.id:userinfo=`username`]]`]]

Если пользователь зарегистрирован, то показывает фразу "Пользователь: ИмяПользователя". Если не зарегистрирован, то "Пользователь: ".
Поставил плагин "Personalize". Сделал чанки без кода, только с надписями "залоген" и "не залоген". Все отработало несколько раз на ура. Набил html-кодом чанки, теперь они тоже отрабатываются так, как будто я не зарегистрирован. Чистил кэш браузера и сайта - результат не меняется. В чем может быть проблема?
  • Вопрос задан
  • 734 просмотра
Решения вопроса 1
Realetive
@Realetive
MODX Ambassador России, самозванный БЭМ-евангелист
Вы не авторизованы в контексте web, в котором проверяете «авторизованность» — по умолчанию, при входе в админку вы авторизуетесь только в контексте mgr, даже если открываете «Перейти на сайт» в панели управления.
Решение:
  • авторизовываться отдельно (например, через Login или HybridAuth);
  • автоматически «регистрировать» себя в контексте web при входе в админку:

    <?php
    
    /*!
     * Плагин AutoLogIn
     * В «Системных событиях» плагина включить событие OnWebPageInit
     */
    
    if ($modx->event->name == 'OnWebPageInit') {
      if (!$modx->user->hasSessionContext('web') && $modx->user->isMember('Administrator')) {
        $modx->user->addSessionContext('web');
      }
    }


Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы