Redirect always to configured URL after signup, even if email confirmation is enabled. Fix #726, #949, #1735

This commit is contained in:
Kijin Sung 2023-08-03 21:43:05 +09:00
parent eccb54ca42
commit de9a5bce35

View file

@ -857,42 +857,46 @@ class MemberController extends Member
// Register device // Register device
Rhymix\Modules\Member\Controllers\Device::getInstance()->autoRegisterDevice($args->member_srl, false); 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) // Call a trigger (after)
$this->add('member_srl', $args->member_srl);
ModuleHandler::triggerCall('member.procMemberInsert', 'after', $config); ModuleHandler::triggerCall('member.procMemberInsert', 'after', $config);
self::clearMemberCache($args->member_srl); self::clearMemberCache($args->member_srl);
// Redirect // 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'); $this->setRedirectUrl(getNotEncodedUrl('', 'act', 'dispMemberLoginForm'));
} $msg = sprintf(lang('msg_confirm_mail_sent'), $args->email_address);
elseif (isset($_SESSION['member_auth_referer'])) return new BaseObject(-12, $msg);
{
$returnUrl = $_SESSION['member_auth_referer'];
unset($_SESSION['member_auth_referer']);
} }
else 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() function procMemberModifyInfoBefore()