I use the following code inside a LoginForm
class LoginForm extends CFormModel
{
public $username;
public $password;
public $rememberMe;
private $_identity;
public function rules()
{
...
}
public function authenticate($attribute, $params)
{
$this->_identity = new UserIdentity($this->username, $this->password);
if (!$this->_identity->authenticate())
$this->addError('password', 'Incorrect username or password.');
}
public function login()
{
if ($this->_identity === null)
{
$this->_identity = new UserIdentity($this->username, $this->password);
$this->_identity->authenticate();
}
if ($this->_identity->errorCode === UserIdentity::ERROR_NONE)
{
$duration = $this->rememberMe ? 3600*24*30 : 0; // 30 days
Yii::app()->user->login($this->_identity, $duration);
assert(!Yii::app()->user->isGuest);
}
else
{
return false;
}
}
}
The problem is the ‘assert’ statement after the Yii::app()->user->login() fails. Does the Yii::app()->user->login() set the ‘isGuest’ if the login success?
Any help will be appreciated.