Accommodate standalone=auto setting in other relevant places

This commit is contained in:
Kijin Sung 2021-04-20 21:52:06 +09:00
parent 741a714abd
commit 4a34b3dfa8
3 changed files with 25 additions and 10 deletions

View file

@ -371,11 +371,18 @@ class ModuleHandler extends Handler
}
// check if the current action allows standalone access (without mid)
if(!$this->mid && isset($xml_info->action->{$this->act}) && $xml_info->action->{$this->act}->standalone === 'false')
if(isset($xml_info->action->{$this->act}))
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
if($xml_info->action->{$this->act}->standalone === 'auto' && (!$this->module && !$this->mid))
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
}
if($xml_info->action->{$this->act}->standalone === 'false' && !$this->mid)
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
}
}
if(!isset($this->module_info->use_mobile))
{
$this->module_info->use_mobile = 'N';
@ -432,7 +439,19 @@ class ModuleHandler extends Handler
$module = strtolower($matches[1]);
$xml_info = ModuleModel::getModuleActionXml($module);
if($xml_info->action->{$this->act} && ($this->module == 'admin' || $xml_info->action->{$this->act}->standalone != 'false'))
if(!isset($xml_info->action->{$this->act}))
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
}
elseif ($xml_info->action->{$this->act}->standalone === 'auto' && $this->module !== 'admin' && $this->module !== $module)
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
}
elseif ($xml_info->action->{$this->act}->standalone === 'false' && $this->module !== 'admin')
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
}
else
{
$forward = new stdClass();
$forward->module = $module;
@ -442,10 +461,6 @@ class ModuleHandler extends Handler
$forward->meta_noindex = $xml_info->action->{$this->act}->meta_noindex;
$forward->act = $this->act;
}
else
{
return self::_createErrorMessage(-1, 'msg_invalid_request');
}
}
if(empty($forward->module))