Esempio n. 1
0
 /**
  * Test sign in
  *
  * @depends testChangeUserForgottenPassword
  *
  * @return User
  */
 public function testSignIn(User $user)
 {
     /* @var $user User */
     $user = $this->getModule('Yii2')->grabFixture('users', 'activeUser1');
     $model = new SignInForm();
     $attributes = ['email' => [['value' => null, 'isValid' => false], ['value' => 0, 'isValid' => false], ['value' => '', 'isValid' => false], ['value' => 'wrong e-mail', 'isValid' => false], ['value' => $user->email, 'isValid' => true]], 'password' => [['value' => null, 'isValid' => false], ['value' => 0, 'isValid' => false], ['value' => 'wrong user password', 'isValid' => false], ['value' => 'password_active_user_1', 'isValid' => true]]];
     $this->getModule('\\Helper\\Unit')->validateModelAttributes($model, $attributes, $this);
     // locked user can't sign in
     $this->assertTrue($this->userModule->lockUser($user));
     $this->assertFalse($model->validate());
     $this->assertTrue($this->userModule->activateUser($user));
     $this->assertTrue($model->validate());
     $this->assertInstanceOf(User::className(), $model->getUser());
     $this->assertTrue($this->userModule->signInUser($model->getUser(), $model->password, null, true));
     return $user;
 }
Esempio n. 2
0
 /**
  * Sign in
  *
  * @return mixed
  */
 public function actionSignIn()
 {
     $model = new SignInForm();
     $ret = $this->performAjaxValidation($model);
     if (is_array($ret)) {
         // AJAX validation
         return $ret;
     }
     if ($model->load(Yii::$app->request->post()) && $model->validate()) {
         $user = $model->getUser();
         if ($user instanceof User && $this->userModule->signInUser($user, $model->password)) {
             return $this->goHome();
         }
         // account was blocked
         /* @var $systemAlert Alert */
         $systemAlert = Yii::$app->systemAlert;
         $systemAlert->setMessage(Alert::DANGER, Yii::t('user', 'An account is blocked'));
         return $this->refresh();
     }
     return $this->render('sign-in', ['model' => $model]);
 }