<?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 { private $_id; const ERROR_EMAIL_INVALID=3; const ERROR_STATUS_NOTACTIV=4; const ERROR_STATUS_BAN=5; /** * Authenticates a user. * The example implementation makes sure if the username and password * are both 'demo'. * In practical applications, this should be changed to authenticate * against some persistent user identity storage (e.g. database). * @return boolean whether authentication succeeds. */ public function authenticate() { if (strpos($this->username,"@")) { $user=User::model()->notsafe()->findByAttributes(array('email'=>$this->username)); } else { $user=User::model()->notsafe()->findByAttributes(array('username'=>$this->username)); } if($user===null){ if (strpos($this->username,"@")) { $this->errorCode=self::ERROR_EMAIL_INVALID; } else { $this->errorCode=self::ERROR_USERNAME_INVALID; } } elseif (Yii::app()->getModule('panel')->encrypting($this->password,$user->password) /*Yii::app()->funciones->encrypting($this->password,$user->password)*/ !==$user->password) { $this->errorCode=self::ERROR_PASSWORD_INVALID; } elseif ($user->status==0&&Yii::app()->getModule('user')->loginNotActiv==false){ $this->errorCode=self::ERROR_STATUS_NOTACTIV; } elseif ($user->status==-1){ $this->errorCode=self::ERROR_STATUS_BAN; } else { $this->_id=$user->id; $this->username=$user->username; $this->errorCode=self::ERROR_NONE; $this->setState('username', $user->username); //$this->setState('superuser', $user->superuser); //$this->setState('tipo', $user->id_tipo_usuario); //$this->setState('zona', $user->id_zona); } return !$this->errorCode; } /** * @return integer the ID of the user record */ public function getId() { return $this->_id; } }