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

    public function 
run($pass_token null){

        if (!
$this->options['is_reg_enabled']){
            
cmsCore::error404();
        }

        if (empty(
$this->options['verify_email'])){
            
cmsCore::error404();
        }

        if (
$this->cms_user->is_logged && !$this->cms_user->is_admin) { $this->redirectToHome(); }

        
$users_model cmsCore::getModel('users');

        
$reg_email cmsUser::getCookie('reg_email');

        
$reg_user = [];

        if(
$reg_email && $this->validate_email($reg_email) === true){

            
$reg_user $users_model->filterNotNull('pass_token')->
                    
filterEqual('is_locked'1)->
                    
getUserByEmail($reg_email);

            if(
$reg_user){

                
$reg_user['resubmit_extime'] = modelAuth::RESUBMIT_TIME - (time() - strtotime($reg_user['date_token']));
                if(
$reg_user['resubmit_extime'] < 0){
                    
$reg_user['resubmit_extime'] = 0;
                }

            }

        } else {
            
cmsUser::unsetCookie('reg_email');
            
$reg_email false;
        }

        
$form $this->getForm('verify', array($reg_user));

        
$data = array('reg_token' => $pass_token);

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

            
$data $form->parse($this->requesttrue);

            
$errors $form->validate($this$data);

            if (!
$errors){

                
$user $users_model->getUserByPassToken($data['reg_token']);

                if (!
$user) {
                    
$errors['reg_token'] = LANG_VERIFY_EMAIL_ERROR;
                }

            }

            if (!
$errors){

                
cmsUser::unsetCookie('reg_email');

                
$users_model->unlockUser($user['id'])->clearUserPassToken($user['id']);

                
$user cmsEventsManager::hook('user_registered'$user);

                
cmsUser::addSessionMessage($this->options['reg_auto_auth'] ? LANG_REG_SUCCESS_VERIFIED_AND_AUTH LANG_REG_SUCCESS_VERIFIED'success');

                
// авторизуем пользователя автоматически
                
if ($this->options['reg_auto_auth']){

                    
$user cmsEventsManager::hook('user_login'$user);

                    
cmsUser::setUserSession($user);

                    
$users_model->updateUserIp($user['id']);

                    
cmsEventsManager::hook('auth_login'$user['id']);

                }

                
$this->redirect($this->getAuthRedirectUrl($this->options['first_auth_redirect']));

            }

            if (
$errors){
                
cmsUser::addSessionMessage(LANG_FORM_ERRORS'error');
            }

        }

        return 
$this->cms_template->render([
            
'reg_email' => $reg_email,
            
'data'   => $data,
            
'form'   => $form,
            
'errors' => isset($errors) ? $errors false
        
]);

    }

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