2012-01-26 11:01:38 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* UserIdentity represents the data needed to identity a user.
|
|
|
|
|
* It contains the authentication method that checks if the provided
|
|
|
|
|
* data can identity the user.
|
|
|
|
|
*/
|
|
|
|
|
class UserIdentity extends CUserIdentity
|
|
|
|
|
{
|
2012-02-01 15:41:14 +00:00
|
|
|
private $_id;
|
2012-02-02 16:02:36 +00:00
|
|
|
private $_email;
|
2012-02-01 15:41:14 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Authenticates a user.
|
|
|
|
|
* @return boolean whether authentication succeeds.
|
|
|
|
|
*/
|
|
|
|
|
public function authenticate()
|
|
|
|
|
{
|
|
|
|
|
$user = Usuario::model()->findByAttributes(array('username'=>$this->username));
|
|
|
|
|
if ($user === NULL) {
|
|
|
|
|
$this->errorCode = self::ERROR_USERNAME_INVALID;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
|
|
if ($user->password !== $user->encrypt($this->password)) {
|
|
|
|
|
$this->errorCode = self::ERROR_PASSWORD_INVALID;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$this->_id = $user->id;
|
2012-02-02 16:02:36 +00:00
|
|
|
$this->_email = $user->email;
|
2012-02-01 15:41:14 +00:00
|
|
|
if ($user->last_login_time === null) {
|
|
|
|
|
$lastLogin = time();
|
|
|
|
|
} else {
|
|
|
|
|
$lastLogin = strtotime($user->last_login_time);
|
|
|
|
|
$this->setState('lastLoginTime', $lastLogin);
|
|
|
|
|
}
|
|
|
|
|
$this->errorCode = self::ERROR_NONE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return !$this->errorCode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getId() {
|
|
|
|
|
return $this->_id;
|
|
|
|
|
}
|
2012-02-02 16:02:36 +00:00
|
|
|
|
|
|
|
|
public function getEmail() {
|
|
|
|
|
return $this->_email;
|
|
|
|
|
}
|
2012-01-26 11:01:38 +00:00
|
|
|
}
|