From 6e0b4ab688f8fcd36c9cf2849bb63aa354085d66 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 28 Jan 2022 15:31:06 +0900 Subject: [PATCH] Fix login page always redirecting to main or list page if already logged in --- modules/member/member.view.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 2824b720d..9775045b2 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -607,9 +607,18 @@ class memberView extends member */ 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')) { - $this->setRedirectUrl(getNotEncodedUrl('act','')); + $this->setRedirectUrl($referer_url); return; } @@ -617,6 +626,7 @@ class memberView extends member $config = $this->member_config; Context::set('identifier', $config->identifier); + // Get validator status $XE_VALIDATOR_MESSAGE = Context::get('XE_VALIDATOR_MESSAGE'); $XE_VALIDATOR_ERROR = Context::get('XE_VALIDATOR_ERROR'); 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); } - 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 $this->setTemplateFile('login_form'); }