<?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 { /** * Authenticated person ID * @var string */ private $_id; /** * 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(empty($this->username)) { $this->errorCode=self::ERROR_USERNAME_INVALID; return !$this->errorCode; } $manager = Manager::model()->find(array( "select" => array("`id`", "`name`", "`login`"), "condition" => implode(" AND ", array( "`manager` = :manager", "`login` = :login", "`passwd` = :pass" )), "params" => array( ":manager" => 1, ":login" => $this->username, ":pass" => $this->password ) )); if($manager===null) { $this->errorCode=self::ERROR_PASSWORD_INVALID; } else { $this->_id = $manager->id; // Write manager short info $this->setState('__fullname', empty($manager->name) ? $manager->login : $manager->name); $this->errorCode=self::ERROR_NONE; } return !$this->errorCode; } public function getId() { return $this->_id; } }