From 79955b083c76b53e7bd85b659de761eee4ce3034 Mon Sep 17 00:00:00 2001 From: MinSoo Kim Date: Wed, 27 Jan 2016 13:32:02 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=EA=B3=84=EC=A0=95=20=EA=B1=B0=EB=B6=80=20?= =?UTF-8?q?=EC=82=AC=EC=9C=A0=EB=A5=BC=20extra=5Fvars=20=EC=97=90=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 계정 거부된 회원이 로그인을 시도할 경우, 거부 사유와 함께 오류 메시지가 나타납니다. https://github.com/rhymix/rhymix/issues/58 --- modules/member/lang/lang.xml | 8 +++++ modules/member/member.admin.controller.php | 6 ++-- modules/member/member.controller.php | 2 +- modules/member/tpl/insert_member.html | 35 ++++++++++++++++++---- 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml index 1c541ec03..4d9aff4b2 100644 --- a/modules/member/lang/lang.xml +++ b/modules/member/lang/lang.xml @@ -2665,6 +2665,14 @@ + + + + + + + + diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index b6a89a27e..c844f636d 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -24,12 +24,12 @@ class memberAdminController extends member // if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request"); // Extract the necessary information in advance $logged_info = Context::get('logged_info'); - if($logged_info->is_admin != 'Y' || !checkCSRF()) + if($logged_info->is_admin !== 'Y' || !checkCSRF()) { return new Object(-1, 'msg_invalid_request'); } - $args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date'); + $args = new stdClass; $oMemberModel = &getModel ('member'); $config = $oMemberModel->getMemberConfig (); $getVars = array(); @@ -47,7 +47,7 @@ class memberAdminController extends member { $args->{$val} = Context::get($val); } - $args->member_srl = Context::get('member_srl'); + $args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing', 'allow_message', 'denied', 'is_admin', 'description', 'group_srl_list', 'limit_date'); if(Context::get('reset_password')) $args->password = Context::get('reset_password'); else unset($args->password); diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index dead10f27..e2f1e2de7 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -1751,7 +1751,7 @@ class memberController extends member $redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail'); return $this->setRedirectUrl($redirectUrl, new Object(-1,'msg_user_not_confirmed')); } - return new Object(-1,'msg_user_denied'); + return new Object(-1, ($this->memberInfo->refused_reason)? Context::getLang('msg_user_denied') . "\n" . $this->memberInfo->refused_reason : 'msg_user_denied'); } // Notify if denied_date is less than the current time if($this->memberInfo->limit_date && substr($this->memberInfo->limit_date,0,8) >= date("Ymd")) return new Object(-9,sprintf(Context::getLang('msg_user_limited'),zdate($this->memberInfo->limit_date,"Y-m-d"))); diff --git a/modules/member/tpl/insert_member.html b/modules/member/tpl/insert_member.html index 37f31505a..e8f5245ed 100644 --- a/modules/member/tpl/insert_member.html +++ b/modules/member/tpl/insert_member.html @@ -77,6 +77,13 @@ +
+ +
+ + {$lang->about_refused_reason} +
+
@@ -116,16 +123,32 @@ From f77b8fde3cdb4fc492aab604ea9de517ef62f1f6 Mon Sep 17 00:00:00 2001 From: MinSoo Kim Date: Wed, 27 Jan 2016 17:44:34 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=EC=8B=A0=EA=B3=A0?= =?UTF-8?q?=EC=8B=9C=20=EC=9D=B4=EC=9C=A0=20=EC=A0=81=EC=9D=84=20=EC=88=98?= =?UTF-8?q?=20=EC=9E=88=EA=B2=8C=20=ED=95=AD=EB=AA=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 문서 신고시 항목 적을 수 있게 함 --- modules/document/conf/module.xml | 118 +++++++++--------- modules/document/document.admin.view.php | 47 +++++++ modules/document/document.class.php | 9 ++ modules/document/document.controller.php | 15 ++- modules/document/document.model.php | 4 +- modules/document/document.view.php | 29 +++++ modules/document/lang/lang.xml | 16 +++ .../queries/getDeclaredLogByDocumentSrl.xml | 17 +++ .../queries/insertDocumentDeclaredLog.xml | 19 +-- .../queries/updateDeclaredDocument.xml | 18 +-- modules/document/ruleset/insertDeclare.xml | 8 ++ .../document/schemas/document_declared.xml | 4 +- .../schemas/document_declared_log.xml | 9 +- modules/document/tpl/declare_document.html | 32 +++++ modules/document/tpl/declared_list.html | 2 +- modules/document/tpl/declared_log.html | 71 +++++++++++ 16 files changed, 330 insertions(+), 88 deletions(-) create mode 100644 modules/document/queries/getDeclaredLogByDocumentSrl.xml create mode 100644 modules/document/ruleset/insertDeclare.xml create mode 100644 modules/document/tpl/declare_document.html create mode 100644 modules/document/tpl/declared_log.html diff --git a/modules/document/conf/module.xml b/modules/document/conf/module.xml index 1ec724c13..66607d25c 100644 --- a/modules/document/conf/module.xml +++ b/modules/document/conf/module.xml @@ -1,71 +1,73 @@ - + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + - - + + - - . - - - - - - + + . + + + + + + - - - - - + + + + + + - - + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + Document @@ -81,4 +83,4 @@ Document - + \ No newline at end of file diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index b0ab9df3d..4be7e52b5 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -161,6 +161,53 @@ class documentAdminView extends document $this->setTemplateFile('declared_list'); } + /** + * Display a report list on the admin page + * @return void + */ + function dispDocumentAdminDeclaredLogByDocumentSrl() + { + // option for a list + $args = new stdClass; + $args->page = Context::get('page'); // /< Page + $args->list_count = 30; // /< the number of posts to display on a single page + $args->page_count = 10; // /< the number of pages that appear in the page navigation + $args->document_srl = intval(Context::get('target_srl')); + + + // get Status name list + $oDocumentModel = getModel('document'); + $oMemberModel = getModel('member'); + $statusNameList = $oDocumentModel->getStatusNameList(); + $oDocument = $oDocumentModel->getDocument($args->document_srl); + + $declared_output = executeQuery('document.getDeclaredLogByDocumentSrl', $args); + if($declared_output->data && count($declared_output->data)) + { + $reporter_list = array(); + + foreach($declared_output->data as $key => $log) + { + $reporter_list[$log->member_srl] = $oMemberModel->getMemberInfoByMemberSrl($log->member_srl); + } + } + + // Set values of document_model::getDocumentList() objects for a template + Context::set('total_count', $declared_output->total_count); + Context::set('total_page', $declared_output->total_page); + Context::set('page', $declared_output->page); + Context::set('declare_log', $declared_output->data); + Context::set('reporter_list', $reporter_list); + Context::set('declared_document', $oDocument); + Context::set('page_navigation', $declared_output->page_navigation); + Context::set('status_name_list', $statusNameList); + + // Set the template + $this->setLayoutFile('popup_layout'); + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('declared_log'); + } + /** * Display a alias list on the admin page * @return void diff --git a/modules/document/document.class.php b/modules/document/document.class.php index 1eba9935e..278f540f4 100644 --- a/modules/document/document.class.php +++ b/modules/document/document.class.php @@ -124,6 +124,9 @@ class document extends ModuleObject // 2012. 08. 29 Add a trigger to copy additional setting when the module is copied if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after')) return true; + // 2016. 1. 27: Add a column(declare_message) for report + if(!$oDB->isColumnExists("document_declared_log","declare_message")) return true; + return false; } @@ -320,6 +323,12 @@ class document extends ModuleObject $oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after'); } + // 2016. 1. 27: Add a column(declare_message) for report + if(!$oDB->isColumnExists("document_declared_log","declare_message")) + { + $oDB->addColumn('document_declared_log',"declare_message","text"); + } + return new Object(0,'success_updated'); } diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 2a8c8e55e..16abc0128 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -192,12 +192,18 @@ class documentController extends document */ function procDocumentDeclare() { - if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); $document_srl = Context::get('target_srl'); + $declare_message = Context::get('declare_message'); if(!$document_srl) return new Object(-1, 'msg_invalid_request'); - return $this->declaredDocument($document_srl); + if(Context::get('success_return_url')) + { + $this->setRedirectUrl(Context::get('success_return_url')); + } + + return $this->declaredDocument($document_srl, $declare_message); } /** @@ -1359,9 +1365,10 @@ class documentController extends document /** * Report posts * @param int $document_srl + * @param string $declare_message * @return void|Object */ - function declaredDocument($document_srl) + function declaredDocument($document_srl, $declare_message = '') { // Fail if session information already has a reported document if($_SESSION['declared_document'][$document_srl]) return new Object(-1, 'failed_declared'); @@ -1421,6 +1428,7 @@ class documentController extends document } $args->document_srl = $document_srl; + $args->declare_message = trim(htmlspecialchars($declare_message)); $output = executeQuery('document.getDocumentDeclaredLogInfo', $args); // Pass after registering a sesson if reported/declared documents are in the logs. @@ -1438,6 +1446,7 @@ class documentController extends document if($declared_count > 0) $output = executeQuery('document.updateDeclaredDocument', $args); else $output = executeQuery('document.insertDeclaredDocument', $args); if(!$output->toBool()) return $output; + // Leave logs $output = executeQuery('document.insertDocumentDeclaredLog', $args); if(!$output->toBool()) diff --git a/modules/document/document.model.php b/modules/document/document.model.php index 7167623a4..c353a33a4 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -514,8 +514,8 @@ class documentModel extends document } // Adding Report - $url = sprintf("doCallModuleAction('document','procDocumentDeclare','%s')", $document_srl); - $oDocumentController->addDocumentPopupMenu($url,'cmd_declare','','javascript'); + $url = getUrl('', 'act', 'dispDocumentDeclare', 'target_srl', $document_srl); + $oDocumentController->addDocumentPopupMenu($url,'cmd_declare','','popup'); // Add Bookmark button $url = sprintf("doCallModuleAction('member','procMemberScrapDocument','%s')", $document_srl); diff --git a/modules/document/document.view.php b/modules/document/document.view.php index b922d8778..e18170a8a 100644 --- a/modules/document/document.view.php +++ b/modules/document/document.view.php @@ -175,6 +175,35 @@ class documentView extends document $this->setTemplateFile('saved_list_popup'); } + /** + * Document temp saved list + * @return void + */ + function dispDocumentDeclare() + { + $this->setLayoutFile('popup_layout'); + $document_srl = Context::get('target_srl'); + + $oMemberModel = getModel('member'); + // A message appears if the user is not logged-in + if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); + + // Create the document object. If the document module of basic data structures, write it all works .. -_-; + $oDocumentModel = getModel('document'); + // Creates an object for displaying the selected document + $oDocument = $oDocumentModel->getDocument($document_srl, $this->grant->manager, FALSE); + if(!$oDocument->isExists()) return new Object(-1,'msg_invalid_request'); + // Check permissions + if(!$oDocument->isAccessible()) return new Object(-1,'msg_not_permitted'); + + // Browser title settings + Context::set('target_document', $oDocument); + + Context::set('target_srl', $document_srl); + + $this->setTemplatePath($this->module_path.'tpl'); + $this->setTemplateFile('declare_document'); + } } /* End of file document.view.php */ /* Location: ./modules/document/document.view.php */ diff --git a/modules/document/lang/lang.xml b/modules/document/lang/lang.xml index 0a2d5f3b5..f94be534d 100644 --- a/modules/document/lang/lang.xml +++ b/modules/document/lang/lang.xml @@ -965,4 +965,20 @@ + + + + + + + + + + + + + + + + diff --git a/modules/document/queries/getDeclaredLogByDocumentSrl.xml b/modules/document/queries/getDeclaredLogByDocumentSrl.xml new file mode 100644 index 000000000..b30790912 --- /dev/null +++ b/modules/document/queries/getDeclaredLogByDocumentSrl.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/modules/document/queries/insertDocumentDeclaredLog.xml b/modules/document/queries/insertDocumentDeclaredLog.xml index 81e9dd6d8..9fbe756c8 100644 --- a/modules/document/queries/insertDocumentDeclaredLog.xml +++ b/modules/document/queries/insertDocumentDeclaredLog.xml @@ -1,11 +1,12 @@ - -
- - - - - - - + +
+ + + + + + + + diff --git a/modules/document/queries/updateDeclaredDocument.xml b/modules/document/queries/updateDeclaredDocument.xml index b06e9d8b5..736ec6a54 100644 --- a/modules/document/queries/updateDeclaredDocument.xml +++ b/modules/document/queries/updateDeclaredDocument.xml @@ -1,11 +1,11 @@ - -
- - - - - - - + +
+ + + + + + + diff --git a/modules/document/ruleset/insertDeclare.xml b/modules/document/ruleset/insertDeclare.xml new file mode 100644 index 000000000..f9a57eddf --- /dev/null +++ b/modules/document/ruleset/insertDeclare.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/modules/document/schemas/document_declared.xml b/modules/document/schemas/document_declared.xml index e2892b7c6..a180aa7e2 100644 --- a/modules/document/schemas/document_declared.xml +++ b/modules/document/schemas/document_declared.xml @@ -1,4 +1,4 @@
- - + +
diff --git a/modules/document/schemas/document_declared_log.xml b/modules/document/schemas/document_declared_log.xml index 046f6d3b3..80af4c993 100644 --- a/modules/document/schemas/document_declared_log.xml +++ b/modules/document/schemas/document_declared_log.xml @@ -1,6 +1,7 @@ - - - - + + + + +
diff --git a/modules/document/tpl/declare_document.html b/modules/document/tpl/declare_document.html new file mode 100644 index 000000000..9456b5cef --- /dev/null +++ b/modules/document/tpl/declare_document.html @@ -0,0 +1,32 @@ +
+

{$XE_VALIDATOR_MESSAGE}

+
+
+

{$lang->improper_document_declare}

+
+ + + + + +
+
+

{$target_document->getTitleText()}

+

{$target_document->getSummary(200)}

+
+
+ +
+ +

{$lang->about_improper_document_declare}

+

+
+
+ +
+
+
+
+ \ No newline at end of file diff --git a/modules/document/tpl/declared_list.html b/modules/document/tpl/declared_list.html index 6822a12f3..239e16dcb 100644 --- a/modules/document/tpl/declared_list.html +++ b/modules/document/tpl/declared_list.html @@ -46,7 +46,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}'; {$oDocument->getTitle()} {$oDocument->getNickName()} - {$oDocument->get('declared_count')} + {$oDocument->get('declared_count')} ({$lang->improper_document_declare_reason}) {$oDocument->get('readed_count')} {$oDocument->get('voted_count')}/{$oDocument->get('blamed_count')} {$oDocument->getRegdate("Y-m-d H:i")} diff --git a/modules/document/tpl/declared_log.html b/modules/document/tpl/declared_log.html new file mode 100644 index 000000000..2a99dd848 --- /dev/null +++ b/modules/document/tpl/declared_log.html @@ -0,0 +1,71 @@ +

{$lang->improper_document_declare}

+
+

{$XE_VALIDATOR_MESSAGE}

+
+
+ + +
+
+

{$declared_document->getTitleText()}

+

{$declared_document->getSummary(200)}

+
{$declared_document->getNickName()}
+
+
+

{$lang->improper_document_declare_reason}

+ + + + + + + + + + + + + + + +
{$lang->declaring_user}{$lang->improper_document_declare_reason}{$lang->date}
{$reporter_list[$log->member_srl]->nick_name} ({$log->ipaddress}){$log->declare_message}{date('Y-m-d H:i:s', strtotime($log->regdate))}
+
+ +
+ + + + + + + +
From 644ed8eb0570dd8d4390d4050f61a5a9b0155f9f Mon Sep 17 00:00:00 2001 From: MinSoo Kim Date: Thu, 28 Jan 2016 03:59:26 +0900 Subject: [PATCH 3/7] =?UTF-8?q?=EC=8B=A0=EA=B3=A0=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=EC=A7=80=20=EC=B6=94=EA=B0=80,=20=EB=AA=A8=EB=B0=94=EC=9D=BC?= =?UTF-8?q?=20=EC=8B=A0=EA=B3=A0=20=ED=99=98=EA=B2=BD=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 신고 사유를 선택지 중 선택할 수 있게 함 - 팝업 메뉴의 스타일을 개선하여 모바일에서 적절하게 터치할 수 있게 함. --- common/css/xe.css | 35 +++++++++++++------ common/js/common.js | 2 +- modules/document/document.controller.php | 5 ++- modules/document/lang/lang.xml | 34 ++++++++++++++++++ modules/document/tpl/css/declare_document.css | 12 +++++++ modules/document/tpl/declare_document.html | 29 +++++++++++++-- 6 files changed, 101 insertions(+), 16 deletions(-) create mode 100644 modules/document/tpl/css/declare_document.css diff --git a/common/css/xe.css b/common/css/xe.css index 1c186ff08..de39e72c3 100644 --- a/common/css/xe.css +++ b/common/css/xe.css @@ -63,14 +63,16 @@ a img { /* Popup Menu Area */ #popup_menu_area { position: absolute; + z-index:9999; margin: 10px 0; - padding: 10px; - border: 1px solid #e9e9e9; - border-radius: 3px; + padding: 0; + border: 1px solid #eeeeee; + border-radius: 2px; font-size: 12px; - box-shadow: 0 0 6px #666; - filter: progid: DXImageTransform.Microsoft.Shadow(color=#999999,direction=135, strength=5); + box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); background: #fff; + min-width:80px; + outline:none; } #popup_menu_area ul { margin: 0; @@ -80,20 +82,31 @@ a img { #popup_menu_area li { margin: 0; padding: 0; - line-height: 1.25; + line-height: 1.5; } #popup_menu_area a { display: block; - padding: 1px 3px; - border-radius: 2px; + padding: 5px; text-decoration: none; - color: #333; + color: #212121; } #popup_menu_area a:hover, #popup_menu_area a:active, #popup_menu_area a:focus { - color: #fff; - background: #666; + background: #eeeeee; +} +@media screen and (max-width: 400px) { + #popup_menu_area { + min-width:120px; + max-width:95%; + font-size: 13px; + } + #popup_menu_area a { + display: block; + padding: 10px; + text-decoration: none; + color: #212121; + } } /* Message */ diff --git a/common/js/common.js b/common/js/common.js index ef829e480..29164bc60 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -945,7 +945,7 @@ jQuery(function($){ // display popup menu that contains member actions and document actions $(document).on('click', function(evt) { var $area = $('#popup_menu_area'); - if(!$area.length) $area = $('