Redirect to member mid if member pages are accessed through a different mid

This commit is contained in:
Kijin Sung 2023-06-20 00:40:14 +09:00
parent 3b265d5278
commit 2a570e7737

View file

@ -22,29 +22,19 @@ class MemberView extends Member
$oSecurity = new Security();
$oSecurity->encodeHTML('member_config.signupForm..');
// Set the skin path
$skin = $this->member_config->skin;
// Set the template path
if(!$skin)
if($skin)
{
$skin = 'default';
$template_path = sprintf('%sskins/%s', $this->module_path, $skin);
}
else
{
//check theme
$config_parse = explode('|@|', $skin);
if (count($config_parse) > 1)
{
$template_path = sprintf('./themes/%s/modules/member/', $config_parse[0]);
}
else
{
$template_path = sprintf('%sskins/%s', $this->module_path, $skin);
}
$template_path = sprintf('%sskins/%s', $this->module_path, 'default');
}
// Template path
$this->setTemplatePath($template_path);
// Set the layout path
$layout_info = LayoutModel::getInstance()->getLayout($this->member_config->layout_srl);
if($layout_info)
{
@ -53,6 +43,30 @@ class MemberView extends Member
}
}
/**
* Check redirect
*/
public function checkMidAndRedirect()
{
if (!$this->member_config->mid)
{
return true;
}
if (ModuleModel::getModuleInfoByMid($this->member_config->mid)->module !== $this->module)
{
return true;
}
if (isset($this->mid) && $this->mid === $this->member_config->mid)
{
return true;
}
$vars = get_object_vars(Context::getRequestVars());
$vars['mid'] = $this->member_config->mid;
$this->setRedirectUrl(getUrl($vars));
return false;
}
/**
* Module index
*/
@ -73,9 +87,17 @@ class MemberView extends Member
*/
function dispMemberInfo()
{
$logged_info = Context::get('logged_info');
if (!$this->checkMidAndRedirect())
{
return;
}
// Don't display member info to non-logged user
if(!$logged_info->member_srl) throw new Rhymix\Framework\Exceptions\MustLogin;
$logged_info = Context::get('logged_info');
if(!$logged_info->member_srl)
{
throw new Rhymix\Framework\Exceptions\MustLogin;
}
$member_srl = Context::get('member_srl');
if(!$member_srl && Context::get('is_logged'))
@ -298,6 +320,11 @@ class MemberView extends Member
function dispMemberModifyInfoBefore()
{
if (!$this->checkMidAndRedirect())
{
return;
}
$logged_info = Context::get('logged_info');
if(!$logged_info->member_srl)
{
@ -338,6 +365,11 @@ class MemberView extends Member
return;
}
if (!$this->checkMidAndRedirect())
{
return;
}
$_SESSION['rechecked_password_step'] = 'INPUT_DATA';
$member_config = $this->member_config;
@ -407,6 +439,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exceptions\FeatureDisabled;
}
if (!$this->checkMidAndRedirect())
{
return;
}
// A message appears if the user is not logged-in
if(!Context::get('is_logged'))
{
@ -451,6 +488,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exceptions\FeatureDisabled;
}
if (!$this->checkMidAndRedirect())
{
return;
}
// A message appears if the user is not logged-in
if(!Context::get('is_logged'))
{
@ -493,6 +535,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exceptions\FeatureDisabled;
}
if (!$this->checkMidAndRedirect())
{
return;
}
// A message appears if the user is not logged-in
if(!Context::get('is_logged'))
{
@ -588,6 +635,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exceptions\FeatureDisabled;
}
if (!$this->checkMidAndRedirect())
{
return;
}
// A message appears if the user is not logged-in
$logged_info = Context::get('logged_info');
if(!$logged_info->member_srl) throw new Rhymix\Framework\Exceptions\MustLogin;
@ -617,6 +669,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exceptions\FeatureDisabled;
}
if (!$this->checkMidAndRedirect())
{
return;
}
$logged_info = Context::get('logged_info');
if (!$logged_info->member_srl)
{
@ -694,8 +751,12 @@ class MemberView extends Member
// A message appears if the user is not logged-in
if(!$this->user->member_srl) throw new Rhymix\Framework\Exceptions\MustLogin;
$memberConfig = $this->member_config;
if (!$this->checkMidAndRedirect())
{
return;
}
$memberConfig = $this->member_config;
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
@ -725,8 +786,12 @@ class MemberView extends Member
// A message appears if the user is not logged-in
if(!$this->user->member_srl) throw new Rhymix\Framework\Exceptions\MustLogin;
$memberConfig = $this->member_config;
if (!$this->checkMidAndRedirect())
{
return;
}
$memberConfig = $this->member_config;
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
@ -782,9 +847,12 @@ class MemberView extends Member
throw new Rhymix\Framework\Exception('already_logged');
}
$config = $this->member_config;
if (!$this->checkMidAndRedirect())
{
return;
}
Context::set('identifier', $config->identifier);
Context::set('identifier', $this->member_config->identifier);
Context::set('enable_find_account_question', 'N');
$this->setTemplateFile('find_member_account');
@ -800,6 +868,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exception('already_logged');
}
if (!$this->checkMidAndRedirect())
{
return;
}
$this->setTemplateFile('resend_auth_mail');
}
@ -812,6 +885,11 @@ class MemberView extends Member
return;
}
if (!$this->checkMidAndRedirect())
{
return;
}
$_SESSION['rechecked_password_step'] = 'INPUT_DATA';
$this->setTemplateFile('modify_email_address');
@ -861,7 +939,15 @@ class MemberView extends Member
**/
function dispMemberSpammer()
{
if(!Context::get('is_logged')) throw new Rhymix\Framework\Exceptions\NotPermitted;
if (!Context::get('is_logged'))
{
throw new Rhymix\Framework\Exceptions\NotPermitted;
}
if (!$this->checkMidAndRedirect())
{
return;
}
$member_srl = Context::get('member_srl');
$module_srl = Context::get('module_srl');
@ -896,6 +982,11 @@ class MemberView extends Member
throw new Rhymix\Framework\Exceptions\FeatureDisabled;
}
if (!$this->checkMidAndRedirect())
{
return;
}
$member_srl = Context::get('member_srl');
$logged_info = Context::get('logged_info');
if(!$member_srl)