Exemplo n.º 1
0
 public function run()
 {
     $model = BaseFormModel::newModel('LoginForm');
     Yii::app()->user->setReturnUrl(Yii::app()->request->url);
     if (Yii::app()->user->hasFlash('user_login_error')) {
         $this->widget('AlertWidget', array('title' => 'Авторизация не удалась', 'type' => 'error', 'message' => Yii::app()->user->getFlash('user_login_error')));
     }
     $this->render($this->view, array('model' => $model));
 }
Exemplo n.º 2
0
 public function actionRecover()
 {
     $model = BaseFormModel::newModel('RecoverForm');
     $modelClass = get_class($model);
     $this->performAjaxValidation($model, 'recover-form');
     if (isset($_POST[$modelClass])) {
         $model->attributes = $_POST[$modelClass];
         if ($model->validate()) {
             $model->onRecover = array($this, 'sendRecoverMessage');
             $model->recover();
             Yii::app()->user->setFlash('recoverSuccess', 'Новый пароль от вашего аккаунта отправлен вам на e-mail.');
             $this->refresh();
         }
     }
     $this->render('/recover', array('model' => $model));
 }
Exemplo n.º 3
0
 public function run()
 {
     $model = BaseFormModel::newModel('LoginForm');
     $modelClass = get_class($model);
     $ajaxId = isset($_POST['login-widget-form']) ? 'login-widget-form' : 'login-form';
     if (isset($_POST['ajax']) && $_POST['ajax'] === $ajaxId) {
         echo CActiveForm::validate($model);
         Yii::app()->end();
     }
     if (isset($_POST[$modelClass])) {
         $model->attributes = $_POST[$modelClass];
         if ($model->validate() && $model->login()) {
             Yii::log('Успешная авторизация под логином ' . $model->username, CLogger::LEVEL_INFO, 'application.login.success');
             unset(Yii::app()->request->cookies['login_attempt']);
             $this->controller->redirect(Yii::app()->user->returnUrl);
         } else {
             Yii::log('Ошибка авторизации (логин=' . $model->username . ')', CLogger::LEVEL_INFO, 'application.login.error');
             Yii::app()->user->setFlash('user_login_error', CHtml::errorSummary($model, ' '));
             if (isset(Yii::app()->request->cookies['login_attempt'])) {
                 $cookie = Yii::app()->request->cookies['login_attempt'];
                 $cookie->value += 1;
             } else {
                 $cookie = new CHttpCookie('login_attempt', 1);
                 $cookie->expire = time() * 60;
             }
             Yii::app()->request->cookies['login_attempt'] = $cookie;
         }
     }
     $view = '/login';
     if (Yii::app()->isBackend) {
         $view = 'backend.views.auth';
     }
     if ($view != null) {
         $this->controller->render($view, array('model' => $model));
     } else {
         $this->controller->redirect(Yii::app()->user->returnUrl);
     }
 }