Вход Регистрация
Файл: system/controllers/auth/actions/login.php
Строк: 44
<?php
class actionAuthLogin extends cmsAction {

    public function 
run(){

        if (
cmsUser::isLogged()) { $this->redirectToHome(); }

        
$email      $this->request->get('login_email');
        
$password   $this->request->get('login_password');
        
$remember   = (bool)$this->request->get('remember');

        
$back_url $this->request->has('back') ?
                    
$this->request->get('back') :
                    
false;

        
$is_site_offline = !cmsConfig::get('is_site_on');

        if (
$this->request->has('submit')){

            
$is_captcha_valid true;

            if (
cmsUser::sessionGet('is_auth_captcha') && $this->options['auth_captcha']){
                
$is_captcha_valid cmsEventsManager::hook('captcha_validate'$this->request);
            }

            if (
$is_captcha_valid){

                
cmsUser::sessionUnset('is_auth_captcha');

                
$logged_id  cmsUser::login($email$password$remember);

                if ( 
$logged_id ){

                    if (
$is_site_offline){
                        
$userSession cmsUser::sessionGet('user');
                        if (!
$userSession['is_admin']){
                            
cmsUser::addSessionMessage(LANG_LOGIN_ADMIN_ONLY'error');
                            
cmsUser::logout();
                            
$this->redirectBack();
                        }
                    }

                    
cmsEventsManager::hook('auth_login'$logged_id);

                    
$is_back $this->request->get('is_back');

                    if (
$is_back){
                        
$this->redirectBack();
                    }

                    if (
$back_url){
                        
$this->redirect($back_url);
                    } else {
                        
$this->redirectToHome();
                    }

                }

            }

            if (
$this->options['auth_captcha'] && !$is_site_offline){
                
cmsUser::sessionSet('is_auth_captcha'true);
            }

            if (
$is_captcha_valid){
                
cmsUser::addSessionMessage(LANG_LOGIN_ERROR'error');
                if (
$is_site_offline) { $this->redirectBack(); }
            } else {
                
cmsUser::addSessionMessage(LANG_CAPTCHA_ERROR'error');
            }

        }

        if (
$back_url){
            
cmsUser::addSessionMessage(LANG_LOGIN_REQUIRED'error');
        }

        if (
cmsUser::sessionGet('is_auth_captcha')){
            
$captcha_html cmsEventsManager::hook('captcha_html');
        }

        return 
cmsTemplate::getInstance()->render('login', array(
            
'back_url' => $back_url,
            
'captcha_html'=> isset($captcha_html) ? $captcha_html false,
        ));

    }

}
Онлайн: 4
Реклама