I have overridden some of the returnUrl related methods for CWebUser.
<?php
class WebUser extends CWebUser {
public function init() {
parent::init();
//echo 'function called';exit;
}
/*
* Override get return url
*/
public function getReturnUrl($defaultUrl = null) {
if ($defaultUrl === null) {
$defaultReturnUrl = Yii::app()->getUrlManager()->showScriptName ? Yii::app()->getRequest()->getScriptUrl() : Yii::app()->getRequest()->getBaseUrl() . '/';
} else {
$defaultReturnUrl = CHtml::normalizeUrl($defaultUrl);
}
return $this->getState('__returnUrl', $defaultReturnUrl);
echo Yii::app()->user->returnUrl;exit;
}
/*
* Override set return url
*/
public function setReturnUrl($value) {
if ($value == "/site/page/?view=error404"
|| $value == "/site/loginpage/"
|| $value == "/site/loginpage/") {
//echo $value;die; // Nothing to do
} else {
$this->setState('__returnUrl', $value);
}
echo Yii::app()->user->returnUrl;exit;
}
}
I am sure that application is using this Class instead of CWebUser, As i have checked by overriding the init method.
Controller redirection code is
if ($model->validate() && $model->login()) {
$this->redirect(Yii::app()->user->returnUrl);
}
When i login it doesn’t redirect user to anywhere.
I have put exit in both functions but it doesn’t exit in whole flow.
Can anyone please help me to understand, why these these two methods are not getting called automatically?