Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
ABC_Air-Service/models/LoginForm11.php
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
82 lines (71 sloc)
1.95 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace app\models; | |
use Yii; | |
use yii\base\Model; | |
/** | |
* LoginForm is the model behind the login form. | |
* | |
* @property-read User|null $user This property is read-only. | |
* | |
*/ | |
class LoginForm extends Model | |
{ | |
public $username; | |
public $password; | |
public $rememberMe = true; | |
private $_user = false; | |
/** | |
* @return array the validation rules. | |
*/ | |
public function rules() | |
{ | |
return [ | |
// username and password are both required | |
[['username', 'password'], 'required'], | |
// rememberMe must be a boolean value | |
['rememberMe', 'boolean'], | |
// password is validated by validatePassword() | |
['password', 'validatePassword'], | |
]; | |
} | |
/** | |
* Validates the password. | |
* This method serves as the inline validation for password. | |
* | |
* @param string $attribute the attribute currently being validated | |
* @param array $params the additional name-value pairs given in the rule | |
*/ | |
public function validatePassword($attribute, $params) | |
{ | |
if (!$this->hasErrors()) { | |
$user = $this->getUser(); | |
// $pass = md5($this->password); | |
if (!$user || !$user->validatePassword($this->password)) { | |
$this->addError($attribute, 'Incorrect username or password.'); | |
} | |
} | |
} | |
/** | |
* Logs in a user using the provided username and password. | |
* @return bool whether the user is logged in successfully | |
*/ | |
public function login() | |
{ | |
if ($this->validate()) { | |
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0); | |
} | |
return false; | |
} | |
/** | |
* Finds user by [[username]] | |
* | |
* @return User|null | |
*/ | |
public function getUser() | |
{ | |
if ($this->_user === false) { | |
$this->_user = User::findByUsername($this->username); | |
} | |
return $this->_user; | |
} | |
} |