mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-10 22:12:16 +09:00
Merge pull request #452 from conory/pr/seo
시스템 에러 메세지를 출력할 경우 403 HTTP 코드로 설정
This commit is contained in:
commit
ea0e550ba1
14 changed files with 70 additions and 41 deletions
|
|
@ -1524,7 +1524,6 @@ class Context
|
|||
if ($status != 200)
|
||||
{
|
||||
$oMessageObject->setHttpStatusCode($status);
|
||||
ModuleHandler::_setHttpStatusMessage($status);
|
||||
}
|
||||
|
||||
if (in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON', 'JS_CALLBACK')))
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ class DisplayHandler extends Handler
|
|||
|
||||
// header output
|
||||
$httpStatusCode = $oModule->getHttpStatusCode();
|
||||
if($httpStatusCode && $httpStatusCode != 200 && !in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON', 'JS_CALLBACK')))
|
||||
if($httpStatusCode !== 200 && !in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON', 'JS_CALLBACK')))
|
||||
{
|
||||
self::_printHttpStatusCode($httpStatusCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,6 +207,20 @@ class ModuleHandler extends Handler
|
|||
{
|
||||
unset($module_info);
|
||||
}
|
||||
|
||||
// if the secret document permission does not have, specify HTTP 403
|
||||
if(Context::getRequestMethod() == 'GET')
|
||||
{
|
||||
$oDocumentModel = getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($this->document_srl);
|
||||
if($oDocument->isSecret() || $oDocument->get('status') === $oDocumentModel->getConfigStatus('temp'))
|
||||
{
|
||||
if(!$oDocument->isGranted() && !$oDocument->isAccessible())
|
||||
{
|
||||
$this->httpStatusCode = '403';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -632,7 +646,7 @@ class ModuleHandler extends Handler
|
|||
{
|
||||
self::_setInputErrorToContext();
|
||||
|
||||
$this->error = 'msg_is_not_administrator';
|
||||
$this->error = 'admin.msg_is_not_administrator';
|
||||
$oMessageObject = self::getModuleInstance('message', $display_mode);
|
||||
$oMessageObject->setError(-1);
|
||||
$oMessageObject->setMessage($this->error);
|
||||
|
|
@ -646,7 +660,7 @@ class ModuleHandler extends Handler
|
|||
if(!$grant->manager)
|
||||
{
|
||||
self::_setInputErrorToContext();
|
||||
$this->error = 'msg_is_not_administrator';
|
||||
$this->error = 'admin.msg_is_not_administrator';
|
||||
$oMessageObject = self::getModuleInstance('message', $display_mode);
|
||||
$oMessageObject->setError(-1);
|
||||
$oMessageObject->setMessage($this->error);
|
||||
|
|
@ -658,7 +672,7 @@ class ModuleHandler extends Handler
|
|||
if(!$grant->is_admin && $this->module != $this->orig_module->module && $xml_info->permission->{$this->act} != 'manager')
|
||||
{
|
||||
self::_setInputErrorToContext();
|
||||
$this->error = 'msg_is_not_administrator';
|
||||
$this->error = 'admin.msg_is_not_administrator';
|
||||
$oMessageObject = self::getModuleInstance('message', $display_mode);
|
||||
$oMessageObject->setError(-1);
|
||||
$oMessageObject->setMessage($this->error);
|
||||
|
|
@ -897,7 +911,6 @@ class ModuleHandler extends Handler
|
|||
$methodList = array('XMLRPC' => 1, 'JSON' => 1, 'JS_CALLBACK' => 1);
|
||||
if(!isset($methodList[Context::getRequestMethod()]))
|
||||
{
|
||||
|
||||
if($_SESSION['XE_VALIDATOR_RETURN_URL'])
|
||||
{
|
||||
header('location: ' . $_SESSION['XE_VALIDATOR_RETURN_URL']);
|
||||
|
|
@ -914,24 +927,25 @@ class ModuleHandler extends Handler
|
|||
$oMessageObject->setMessage($this->error);
|
||||
$oMessageObject->dispMessage();
|
||||
|
||||
if($oMessageObject->getHttpStatusCode() && $oMessageObject->getHttpStatusCode() != '200')
|
||||
// display Error Page
|
||||
if(!in_array($oMessageObject->getHttpStatusCode(), array(200, 403)))
|
||||
{
|
||||
self::_setHttpStatusMessage($oMessageObject->getHttpStatusCode());
|
||||
$oMessageObject->setTemplateFile('http_status_code');
|
||||
}
|
||||
|
||||
|
||||
// If module was called normally, change the templates of the module into ones of the message view module
|
||||
if($oModule)
|
||||
{
|
||||
$oModule->setTemplatePath($oMessageObject->getTemplatePath());
|
||||
$oModule->setTemplateFile($oMessageObject->getTemplateFile());
|
||||
$oModule->setHttpStatusCode($oMessageObject->getHttpStatusCode());
|
||||
// Otherwise, set message instance as the target module
|
||||
}
|
||||
else
|
||||
{
|
||||
$oModule = $oMessageObject;
|
||||
}
|
||||
|
||||
|
||||
self::_clearErrorSession();
|
||||
}
|
||||
|
||||
|
|
@ -1049,7 +1063,16 @@ class ModuleHandler extends Handler
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Set http status code
|
||||
if($this->httpStatusCode && $oModule->getHttpStatusCode() === 200)
|
||||
{
|
||||
$oModule->setHttpStatusCode($this->httpStatusCode);
|
||||
}
|
||||
|
||||
// Set http status message
|
||||
self::_setHttpStatusMessage($oModule->getHttpStatusCode());
|
||||
|
||||
// Display contents
|
||||
$oDisplayHandler = new DisplayHandler();
|
||||
$oDisplayHandler->printContent($oModule);
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class ModuleObject extends Object
|
|||
{
|
||||
case 'root' :
|
||||
case 'manager' :
|
||||
$this->stop('msg_is_not_administrator');
|
||||
$this->stop('admin.msg_is_not_administrator');
|
||||
return;
|
||||
case 'member' :
|
||||
if(!$is_logged)
|
||||
|
|
@ -236,7 +236,8 @@ class ModuleObject extends Object
|
|||
|
||||
$this->setTemplatePath($oMessageObject->getTemplatePath());
|
||||
$this->setTemplateFile($oMessageObject->getTemplateFile());
|
||||
|
||||
$this->setHttpStatusCode($oMessageObject->getHttpStatusCode());
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class Object
|
|||
* http status code.
|
||||
* @var int
|
||||
*/
|
||||
var $httpStatusCode = NULL;
|
||||
var $httpStatusCode = 200;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
|
@ -73,9 +73,9 @@ class Object
|
|||
* @param int $code HTTP status code. Default value is `200` that means successful
|
||||
* @return void
|
||||
*/
|
||||
function setHttpStatusCode($code = '200')
|
||||
function setHttpStatusCode($code = 200)
|
||||
{
|
||||
$this->httpStatusCode = $code;
|
||||
$this->httpStatusCode = (int) $code;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@
|
|||
|
||||
// If the response contains an error, display the error message.
|
||||
if(data.error != "0" && data.error > -1000) {
|
||||
if(data.error == -1 && data.message == "msg_is_not_administrator") {
|
||||
if(data.error == -1 && data.message == "admin.msg_is_not_administrator") {
|
||||
alert("You are not logged in as an administrator.");
|
||||
if ($.isFunction(callback_error)) {
|
||||
callback_error(data);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ class adminAdminController extends admin
|
|||
$logged_info = $oMemberModel->getLoggedInfo();
|
||||
if($logged_info->is_admin != 'Y')
|
||||
{
|
||||
return $this->stop("msg_is_not_administrator");
|
||||
return $this->stop("admin.msg_is_not_administrator");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class adminAdminView extends admin
|
|||
$logged_info = $oMemberModel->getLoggedInfo();
|
||||
if($logged_info->is_admin != 'Y')
|
||||
{
|
||||
return $this->stop("msg_is_not_administrator");
|
||||
return $this->stop("admin.msg_is_not_administrator");
|
||||
}
|
||||
|
||||
// change into administration layout
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class adminloggingController extends adminlogging
|
|||
$logged_info = $oMemberModel->getLoggedInfo();
|
||||
if($logged_info->is_admin != 'Y')
|
||||
{
|
||||
return $this->stop("msg_is_not_administrator");
|
||||
return $this->stop("admin.msg_is_not_administrator");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1136,9 +1136,9 @@ class boardView extends board
|
|||
**/
|
||||
function dispBoardMessage($msg_code)
|
||||
{
|
||||
$msg = lang($msg_code);
|
||||
if(!$msg) $msg = $msg_code;
|
||||
Context::set('message', $msg);
|
||||
Context::set('message', lang($msg_code));
|
||||
|
||||
$this->setHttpStatusCode(403);
|
||||
$this->setTemplateFile('message');
|
||||
}
|
||||
|
||||
|
|
@ -1189,7 +1189,9 @@ class boardView extends board
|
|||
function alertMessage($message)
|
||||
{
|
||||
$script = sprintf('<script> jQuery(function(){ alert("%s"); } );</script>', lang($message));
|
||||
Context::addHtmlFooter( $script );
|
||||
Context::addHtmlFooter($script);
|
||||
|
||||
$this->setHttpStatusCode(403);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,12 +20,15 @@ class messageMobile extends messageView
|
|||
$config = $oModuleModel->getModuleConfig('message');
|
||||
if(!is_object($config)) $config = new stdClass;
|
||||
if(!$config->mskin) $config->mskin = 'default';
|
||||
|
||||
// Set the template path
|
||||
$template_path = sprintf('%sm.skins/%s', $this->module_path, $config->mskin);
|
||||
|
||||
// Get the member configuration
|
||||
$oModuleModel = getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
Context::set('member_config', $member_config);
|
||||
|
||||
// Set a flag to check if the https connection is made when using SSL and create https url
|
||||
$ssl_mode = false;
|
||||
if($member_config->enable_ssl == 'Y')
|
||||
|
|
@ -41,6 +44,12 @@ class messageMobile extends messageView
|
|||
|
||||
$this->setTemplatePath($template_path);
|
||||
$this->setTemplateFile('system_message');
|
||||
|
||||
// Default 403 Error
|
||||
if($this->getHttpStatusCode() === 200)
|
||||
{
|
||||
$this->setHttpStatusCode(403);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* End of file message.mobile.php */
|
||||
|
|
|
|||
|
|
@ -31,27 +31,16 @@ class messageView extends message
|
|||
if(!$config->skin)
|
||||
{
|
||||
$config->skin = 'xedition';
|
||||
$template_path = sprintf('%sskins/%s', $this->module_path, $config->skin);
|
||||
}
|
||||
else
|
||||
{
|
||||
//check theme
|
||||
$config_parse = explode('|@|', $config->skin);
|
||||
if (count($config_parse) > 1)
|
||||
{
|
||||
$template_path = sprintf('./themes/%s/modules/message/', $config_parse[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$template_path = sprintf('%sskins/%s', $this->module_path, $config->skin);
|
||||
}
|
||||
}
|
||||
$template_path = sprintf('%sskins/%s', $this->module_path, $config->skin);
|
||||
|
||||
// Template path
|
||||
$this->setTemplatePath($template_path);
|
||||
|
||||
// Get the member configuration
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
Context::set('member_config', $member_config);
|
||||
|
||||
// Set a flag to check if the https connection is made when using SSL and create https url
|
||||
$ssl_mode = false;
|
||||
if($member_config->enable_ssl == 'Y')
|
||||
|
|
@ -64,6 +53,12 @@ class messageView extends message
|
|||
Context::set('system_message_detail', nl2br($detail));
|
||||
|
||||
$this->setTemplateFile('system_message');
|
||||
|
||||
// Default 403 Error
|
||||
if($this->getHttpStatusCode() === 200)
|
||||
{
|
||||
$this->setHttpStatusCode(403);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* End of file message.view.php */
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ section{margin-top:20px}
|
|||
</style>
|
||||
<section>
|
||||
<div>
|
||||
<h1>404 Not Found</h1>
|
||||
<h1>{$http_status_code} {$http_status_message}</h1>
|
||||
<p>{$lang->msg_module_is_not_exists}</p>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
<!--// BODY -->
|
||||
<section class="xedition-error">
|
||||
<h1>404</h1>
|
||||
<p>Oops, Sorry.<br>Page is not found!</p>
|
||||
<h1>{$http_status_code}</h1>
|
||||
<p>Oops, Sorry.<br>Page is {$http_status_message}!</p>
|
||||
<img src="./img/error.png" width="340" height="400" />
|
||||
</section>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue