Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * LoginForm class.
- * LoginForm is the data structure for keeping
- * user login form data. It is used by the 'login' action of 'SiteController'.
- */
- class LoginForm extends CFormModel
- {
- public $username;
- public $password;
- public $rememberMe=false;
- private $_identity;
- /**
- * Declares the validation rules.
- * The rules state that username and password are required,
- * and password needs to be authenticated.
- */
- public function rules()
- {
- return array(
- // username and password are required
- array('username, password', 'required', 'on'=>'login'),
- // rememberMe needs to be a boolean
- array('rememberMe', 'boolean'),
- // password needs to be authenticated
- array('password', 'authenticate'),
- array('username, password', 'safe'),
- );
- }
- /**
- * Declares attribute labels.
- */
- public function attributeLabels()
- {
- return array(
- 'rememberMe'=>'Remember me next time',
- );
- }
- /**
- * Authenticates the password.
- * This is the 'authenticate' validator as declared in rules().
- */
- public function authenticate($attribute,$params)
- {
- if(!$this->hasErrors())
- {
- $this->_identity=new UserIdentity($this->username,$this->password);
- if(!$this->_identity->authenticate())
- $this->addError('password','Incorrect username or password.');
- }
- }
- /**
- * Logs in the user using the given username and password in the model.
- * @return boolean whether login is successful
- */
- public function login()
- {
- if($this->_identity===null)
- {
- $this->_identity=new UserIdentity($this->username,$this->password);
- $this->_identity->authenticate();
- }
- if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
- {
- $duration=$this->rememberMe ? 0 : 0;
- Yii::app()->user->login($this->_identity,$duration);
- return true;
- }
- else
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement