From 3e7f2e291c7367442cbf9a71c550e53e3f8e6a9b Mon Sep 17 00:00:00 2001 From: Chanyoung Oh Date: Tue, 22 Dec 2020 14:02:11 +0000 Subject: [PATCH 1/2] Fix #1513 --- modules/document/document.controller.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 7caa3946d..abf081247 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1687,7 +1687,6 @@ class documentController extends document // Pass if the author's IP address is as same as visitor's. if($oDocument->get('ipaddress') == \RX_CLIENT_IP) { - $_SESSION['declared_document'][$document_srl] = true; return new BaseObject(-1, 'failed_declared'); } @@ -1700,7 +1699,6 @@ class documentController extends document // Pass after registering a session if author's information is same as the currently logged-in user's. if($member_srl && $member_srl == abs($oDocument->get('member_srl'))) { - $_SESSION['declared_document'][$document_srl] = true; return new BaseObject(-1, 'failed_declared'); } } @@ -1719,7 +1717,6 @@ class documentController extends document $output = executeQuery('document.getDocumentDeclaredLogInfo', $args); if($output->data->count) { - $_SESSION['declared_document'][$document_srl] = true; return new BaseObject(-1, 'failed_declared'); } From 5fa290aaf1465ea2e6b08b1246c6f94092aa78b0 Mon Sep 17 00:00:00 2001 From: Chanyoung Oh Date: Wed, 23 Dec 2020 13:48:08 +0000 Subject: [PATCH 2/2] Fix #1513 while taking advantage of session cache --- modules/document/document.controller.php | 11 +++++++---- modules/document/document.item.php | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index abf081247..0b964505d 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1651,8 +1651,8 @@ class documentController extends document */ function declaredDocument($document_srl, $declare_message = '') { - // Fail if session information already has a reported document - if($_SESSION['declared_document'][$document_srl]) + // Fail if session already tried to report the document + if(isset($_SESSION['declared_document'][$document_srl])) { return new BaseObject(-1, 'failed_declared'); } @@ -1687,6 +1687,7 @@ class documentController extends document // Pass if the author's IP address is as same as visitor's. if($oDocument->get('ipaddress') == \RX_CLIENT_IP) { + $_SESSION['declared_document'][$document_srl] = false; return new BaseObject(-1, 'failed_declared'); } @@ -1699,6 +1700,7 @@ class documentController extends document // Pass after registering a session if author's information is same as the currently logged-in user's. if($member_srl && $member_srl == abs($oDocument->get('member_srl'))) { + $_SESSION['declared_document'][$document_srl] = false; return new BaseObject(-1, 'failed_declared'); } } @@ -1717,6 +1719,7 @@ class documentController extends document $output = executeQuery('document.getDocumentDeclaredLogInfo', $args); if($output->data->count) { + $_SESSION['declared_document'][$document_srl] = false; return new BaseObject(-1, 'failed_declared'); } @@ -1832,7 +1835,7 @@ class documentController extends document if($output->data->count <= 0 || !isset($output->data->count)) { - $_SESSION['declared_document'][$document_srl] = false; + unset($_SESSION['declared_document'][$document_srl]); return new BaseObject(-1, 'failed_declared_cancel'); } @@ -1908,7 +1911,7 @@ class documentController extends document $trigger_obj->declared_count = $declared_count - 1; ModuleHandler::triggerCall('document.declaredDocumentCancel', 'after', $trigger_obj); - $_SESSION['declared_document'][$document_srl] = false; + unset($_SESSION['declared_document'][$document_srl]); $this->setMessage('success_declared_cancel'); } diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 1459be4f7..111cee45f 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -558,7 +558,7 @@ class documentItem extends BaseObject return $_SESSION['declared_document'][$this->document_srl] = $declaredCount; } - return $_SESSION['declared_document'][$this->document_srl] = false; + return false; } function getTitle($cut_size = 0, $tail = '...')