Skip to content

Instantly share code, notes, and snippets.

@davialexandre
Created November 5, 2012 20:09
<?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