В очередной раз обновил сниппет Loginza.

Что нового?
  • Добавлен параметр &loginResourceId=`` для перенаправления юзера при успешном входе на сайт.
  • Добавлен параметр &logoutResourceId=`` для перенаправления юзера при успешном выходе.
  • Добавлен плейсхолдер [[+error]] в чанки, для вывода ошибки входа\выхода.
  • Добавлен вызов события OnBeforeUserFormSave и OnUserFormSave, можно вешать плагины на создание/обновление юзера.

Бонусом небольшой плагинчик, для завершения сессии юзеров, которые были заблокированы на сайте.
if ($modx->event->name == 'OnLoadWebDocument') {
    if ($modx->user->isAuthenticated()) {
        if (!$modx->user->active || $modx->user->Profile->blocked) {
            $modx->runProcessor('security/logout');
            $modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'),'','','full'));
        }
    }
}
Зачем это нужно?

Как известно, MODX хранит сессии в БД, что дает ему возможность держать юзера неделю, по умолчанию. А можно и год, или даже еще дольше. Если вы юзера заблокируете — он будет спокойно гулять по сайту, пока не закончится сессия, или он не разлогинится сам.

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

Обратите внимание, что на событие OnWebLogin такой плагин не сработает, ибо юзер не логинится, а продолжает свою сессию. Отсюда — OnLoadWebDocument.

История изменений
Пакет в репозитории

Следующая заметка
Кэширование в компоненте Tickets


Комментарии ()

    Добавление новых комментариев отключено.