From de9a5bce3538e5eb46fbb1f688f28bee0f676c54 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Thu, 3 Aug 2023 21:43:05 +0900 Subject: [PATCH] Redirect always to configured URL after signup, even if email confirmation is enabled. Fix #726, #949, #1735 --- modules/member/member.controller.php | 52 +++++++++++++++------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index f948b3d98..cfc9e9932 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -857,42 +857,46 @@ class MemberController extends Member // Register device Rhymix\Modules\Member\Controllers\Device::getInstance()->autoRegisterDevice($args->member_srl, false); - // Results - $this->add('member_srl', $args->member_srl); - if($config->redirect_url) $this->add('redirect_url', $config->redirect_url); - if($config->enable_confirm == 'Y') - { - $msg = sprintf(lang('msg_confirm_mail_sent'), $args->email_address); - $this->setMessage($msg); - return $this->setRedirectUrl(getUrl('', 'act', 'dispMemberLoginForm'), new BaseObject(-12, $msg)); - } - else $this->setMessage('success_registed'); - // Call a trigger (after) + $this->add('member_srl', $args->member_srl); ModuleHandler::triggerCall('member.procMemberInsert', 'after', $config); - self::clearMemberCache($args->member_srl); // Redirect - if ($config->redirect_url) + if($config->redirect_url) { - $returnUrl = $config->redirect_url; + $this->setRedirectUrl($config->redirect_url); + if ($config->enable_confirm === 'Y') + { + $msg = sprintf(lang('msg_confirm_mail_sent'), $args->email_address); + return new BaseObject(-12, $msg); + } } - elseif (Context::get('success_return_url')) + elseif($config->enable_confirm === 'Y') { - $returnUrl = Context::get('success_return_url'); - } - elseif (isset($_SESSION['member_auth_referer'])) - { - $returnUrl = $_SESSION['member_auth_referer']; - unset($_SESSION['member_auth_referer']); + $this->setRedirectUrl(getNotEncodedUrl('', 'act', 'dispMemberLoginForm')); + $msg = sprintf(lang('msg_confirm_mail_sent'), $args->email_address); + return new BaseObject(-12, $msg); } else { - $returnUrl = getNotEncodedUrl(''); - } + $this->setMessage('success_registed'); - $this->setRedirectUrl($returnUrl); + if (Context::get('success_return_url')) + { + $this->setRedirectUrl(Context::get('success_return_url')); + } + elseif (isset($_SESSION['member_auth_referer'])) + { + $redirect_url = $_SESSION['member_auth_referer']; + unset($_SESSION['member_auth_referer']); + $this->setRedirectUrl($redirect_url); + } + else + { + $this->setRedirectUrl(getNotEncodedUrl('')); + } + } } function procMemberModifyInfoBefore()