Пример #1
0
 /**
  * Displays the login page
  *
  * @param bool $redirected
  *
  * @throws DreamFactory\Platform\Exceptions\InternalServerErrorException
  */
 public function actionLogin($redirected = false)
 {
     if (!Pii::guest()) {
         $this->redirect('/');
     }
     $_model = new LoginForm();
     // collect user input data
     if (isset($_POST, $_POST['LoginForm'])) {
         $_model->setAttributes($_POST['LoginForm']);
         $_model->rememberMe = 'on' == Option::getBool($_POST['LoginForm'], 'rememberMe', 'off');
         if (1 == Option::get($_POST, 'forgot', 0)) {
             try {
                 $_result = Password::passwordReset($_model->username);
                 $_question = Option::get($_result, 'security_question');
                 if (!empty($_question)) {
                     $_result = Password::passwordReset($_model->username);
                     $_question = Option::get($_result, 'security_question');
                     if (!empty($_question)) {
                         Pii::setFlash('security-email', $_model->username);
                         Pii::setFlash('security-question', $_question);
                         $this->redirect('/' . $this->id . '/securityQuestion');
                     }
                     return;
                 } elseif (Option::getBool($_result, 'success')) {
                     Pii::setFlash('login-form', 'A password reset confirmation has been sent to this email.');
                 }
             } catch (\Exception $_ex) {
                 $_model->addError('username', $_ex->getMessage());
             }
         } else {
             if ($_model->validate()) {
                 $this->redirect($this->_getRedirectUrl());
                 return;
             }
         }
     }
     $this->render('login', array('model' => $_model, 'activated' => $this->_activated, 'allowRegistration' => Config::getOpenRegistration(), 'redirected' => $redirected, 'loginProviders' => Platform::storeGet(Config::PROVIDERS_CACHE_KEY)));
 }