Удобная авторизация в ЦА

v >= 6.5.4 / fpm и cgi режим

Разместите код хука (подробнее) в файле bootstrap.php

class My_Auth
{
    static public function onBeforeSendHeaders($response)
    {
        if(in_array($response->getStatus(), array(401, 403)) && Core_Array::getSession('HOSTCMS_HTTP_AUTH_FLAG') === TRUE && strpos(Core_Array::get($_SERVER, 'REQUEST_URI'), '/admin/') !== FALSE)
        {
            $_SESSION['HOSTCMS_HTTP_AUTH_FLAG'] = FALSE;
            unset($_SESSION['HOSTCMS_HTTP_AUTH_FLAG']);

            $_SESSION['HOSTCMS_LOCATION_ADMIN'] = Core_Array::get($_SERVER, 'REQUEST_URI');

            header('Location: /admin/');
            exit();
        }
    }

    static public function onAfterLogin($null, $args)
    {
        if(!is_null(Core_Array::getSession('HOSTCMS_LOCATION_ADMIN')))
        {
            $location = $_SESSION['HOSTCMS_LOCATION_ADMIN'];

            unset($_SESSION['HOSTCMS_LOCATION_ADMIN']);

            header('Location: ' . $location);
            exit();
        }
    }
}

Core_Event::attach('Core_Response.onBeforeSendHeaders', array('My_Auth', 'onBeforeSendHeaders'));
Core_Event::attach('Core_Auth.onAfterLogin', array('My_Auth', 'onAfterLogin'));

Last updated