|  |  |  | @ -13,6 +13,7 @@ class LoginForm extends Model | 
			
		
	
		
			
				
					|  |  |  |  | 	public $username; | 
			
		
	
		
			
				
					|  |  |  |  | 	public $password; | 
			
		
	
		
			
				
					|  |  |  |  | 	public $rememberMe = true; | 
			
		
	
		
			
				
					|  |  |  |  | 	private $_user; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  |  | 	 * @return array the validation rules. | 
			
		
	
	
		
			
				
					|  |  |  | @ -35,7 +36,7 @@ class LoginForm extends Model | 
			
		
	
		
			
				
					|  |  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  |  | 	public function validatePassword() | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		$user = User::findByUsername($this->username); | 
			
		
	
		
			
				
					|  |  |  |  | 		$user = $this->getUserByUsername($this->username); | 
			
		
	
		
			
				
					|  |  |  |  | 		if (!$user || !$user->validatePassword($this->password)) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$this->addError('password', 'Incorrect username or password.'); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
	
		
			
				
					|  |  |  | @ -48,11 +49,25 @@ class LoginForm extends Model | 
			
		
	
		
			
				
					|  |  |  |  | 	public function login() | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if ($this->validate()) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$user = User::findByUsername($this->username); | 
			
		
	
		
			
				
					|  |  |  |  | 			$user = $this->getUserByUsername($this->username); | 
			
		
	
		
			
				
					|  |  |  |  | 			Yii::$app->user->login($user, $this->rememberMe ? 3600*24*30 : 0); | 
			
		
	
		
			
				
					|  |  |  |  | 			return true; | 
			
		
	
		
			
				
					|  |  |  |  | 		} else { | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  |  | 	 * Finds user by username | 
			
		
	
		
			
				
					|  |  |  |  | 	 * | 
			
		
	
		
			
				
					|  |  |  |  | 	 * @param string $username | 
			
		
	
		
			
				
					|  |  |  |  | 	 * @return User|null | 
			
		
	
		
			
				
					|  |  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  |  | 	private function getUserByUsername($username) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if ($this->_user === null) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$this->_user = User::findByUsername($username); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return $this->_user; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |