Fix login page always redirecting to main or list page if already logged in

This commit is contained in:
Kijin Sung 2022-01-28 15:31:06 +09:00
parent 29c851d124
commit 6e0b4ab688

View file

@ -607,9 +607,18 @@ class memberView extends member
*/ */
function dispMemberLoginForm() function dispMemberLoginForm()
{ {
// Get referer URL
$referer_url = Context::get('referer_url') ?: ($_SERVER['HTTP_REFERER'] ?? '');
if (!$referer_url || !Rhymix\Framework\URL::isInternalURL($referer_url) || contains('procMember', $referer_url))
{
$referer_url = getNotEncodedUrl('act', '');
}
Context::set('referer_url', $referer_url);
// Return to previous screen if already logged in.
if(Context::get('is_logged')) if(Context::get('is_logged'))
{ {
$this->setRedirectUrl(getNotEncodedUrl('act','')); $this->setRedirectUrl($referer_url);
return; return;
} }
@ -617,6 +626,7 @@ class memberView extends member
$config = $this->member_config; $config = $this->member_config;
Context::set('identifier', $config->identifier); Context::set('identifier', $config->identifier);
// Get validator status
$XE_VALIDATOR_MESSAGE = Context::get('XE_VALIDATOR_MESSAGE'); $XE_VALIDATOR_MESSAGE = Context::get('XE_VALIDATOR_MESSAGE');
$XE_VALIDATOR_ERROR = Context::get('XE_VALIDATOR_ERROR'); $XE_VALIDATOR_ERROR = Context::get('XE_VALIDATOR_ERROR');
if($XE_VALIDATOR_ERROR == -11) if($XE_VALIDATOR_ERROR == -11)
@ -624,15 +634,6 @@ class memberView extends member
Context::set('XE_VALIDATOR_MESSAGE', $XE_VALIDATOR_MESSAGE . $config->limit_day_description); Context::set('XE_VALIDATOR_MESSAGE', $XE_VALIDATOR_MESSAGE . $config->limit_day_description);
} }
if(strpos(Context::get('referer_url'), 'procMember') !== false || ($XE_VALIDATOR_ERROR < -10 && $XE_VALIDATOR_ERROR > -21))
{
Context::set('referer_url', getUrl(''));
}
else
{
Context::set('referer_url', escape($_SERVER['HTTP_REFERER']));
}
// Set a template file // Set a template file
$this->setTemplateFile('login_form'); $this->setTemplateFile('login_form');
} }