Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?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;
- const ERROR_PHONE_INVALID=6;
- /**
- * 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($force = false)
- {
- $user=User::model()->notsafe()->findByAttributes(array('email'=>$this->username));
- if ($force == true && $user !== null) {
- $this->errorCode = self::ERROR_NONE;
- $this->_id = $user->id;
- $this->username=$user->email;
- return true;
- }
- if($user===null)
- $this->errorCode=self::ERROR_EMAIL_INVALID;
- else if(!$user->validatePassword($this->password))
- $this->errorCode=self::ERROR_PASSWORD_INVALID;
- else if($user->status==0&&Yii::app()->getModule('user')->loginNotActiv==false)
- $this->errorCode=self::ERROR_STATUS_NOTACTIV;
- else if($user->status==-1)
- $this->errorCode=self::ERROR_STATUS_BAN;
- else {
- $this->_id=$user->id;
- $this->username=$user->email;
- $this->errorCode=self::ERROR_NONE;
- }
- return !$this->errorCode;
- }
- public function hybridauth($username)
- {
- $user=User::model()->find("email = '" . $username . "'");
- if ( $user === null )
- $this->errorCode = self::ERROR_USERNAME_INVALID;
- else
- {
- $this->_id = $user->id;
- $this->username = $user->email;
- $this->errorCode = self::ERROR_NONE;
- }
- return $this->errorCode == self::ERROR_NONE;
- }
- /**
- * @return integer the ID of the user record
- */
- public function getId()
- {
- return $this->_id;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement