<?php class UserIdentity extends CUserIdentity { /** * User's attributes * @var array */ public $user;
public function authenticate() { $this->errorCode=self::ERROR_PASSWORD_INVALID; $user=User::model()->findByAttributes(array('email'=>CHtml::encode($this->username)));
if ($user) { if ($user->password === md5($user->salt.$this->password)) { $this->errorCode=self::ERROR_NONE; $this->setUser($user); } }
unset($user); return !$this->errorCode; }
public function getUser() { return $this->user; }
public function setUser(CActiveRecord $user) { $this->user=$user->attributes; } } ?>
<?php class WebUser extends CWebUser { public function __get($name) { if ($this->hasState('__userInfo')) { $user=$this->getState('__userInfo',array()); if (isset($user[$name])) { return $user[$name]; } }
return parent::__get($name); }
public function login($identity, $duration) { $this->setState('__userInfo', $identity->getUser()); parent::login($identity, $duration); } } ?>