Created
November 5, 2012 20:09
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 | |
class AdminLoginForm extends CFormModel | |
{ | |
public $username; | |
public $password; | |
public $rememberMe; | |
private $_identity; | |
public function rules() | |
{ | |
return array( | |
// username and password are required | |
array('username, password', 'required'), | |
// rememberMe needs to be a boolean | |
array('rememberMe', 'boolean'), | |
// password needs to be authenticated | |
array('password', 'authenticate'), | |
); | |
} | |
public function attributeLabels() | |
{ | |
return array( | |
'username' => 'E-mail', | |
'password' => 'Senha', | |
'rememberMe'=>'Lembrar de mim', | |
); | |
} | |
public function authenticate($attribute,$params) | |
{ | |
if(!$this->hasErrors()) | |
{ | |
$this->_identity=new AdminIdentity($this->username,$this->password); | |
if(!$this->_identity->authenticate()) { | |
if($this->_identity->errorCode == AdminIdentity::ERROR_UNKNOWN_IDENTITY) { | |
$this->addError('username', 'Usuário Bloqueado.'); | |
} else { | |
$this->addError('password','E-maill ou senha incorretos'); | |
} | |
} | |
} | |
} | |
public function login() | |
{ | |
if($this->_identity===null) | |
{ | |
$this->_identity=new AdminIdentity($this->username,$this->password); | |
$this->_identity->authenticate(); | |
} | |
if($this->_identity->errorCode===AdminIdentity::ERROR_NONE) | |
{ | |
$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days | |
Yii::app()->getModule('admin')->user->login($this->_identity,$duration); | |
return true; | |
} | |
else | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment