From eeac13ed90ed9ceab2d87fd35c484aaa40c6c1d0 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 23 Nov 2013 12:03:45 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=98=EB=AA=BB=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=9C=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C=EA=B1=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- krzip.patch | 650 ---------------------------------------------------- 1 file changed, 650 deletions(-) delete mode 100644 krzip.patch diff --git a/krzip.patch b/krzip.patch deleted file mode 100644 index 43b98456a..000000000 --- a/krzip.patch +++ /dev/null @@ -1,650 +0,0 @@ -diff --git a/common/lang/lang.xml b/common/lang/lang.xml -index 6bba46e..fdad62d 100644 ---- a/common/lang/lang.xml -+++ b/common/lang/lang.xml -@@ -3272,6 +3272,10 @@ - - - -+ -+ -+ -+ - - - -diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php -index 095085a..21c26e2 100644 ---- a/modules/comment/comment.model.php -+++ b/modules/comment/comment.model.php -@@ -1054,6 +1054,46 @@ class commentModel extends comment - } - } - -+ /** -+ * Get the total number of comments in corresponding with member_srl. -+ * @param int $member_srl -+ * @return int -+ */ -+ function getCommentCountByMemberSrl($member_srl) -+ { -+ $args = new stdClass(); -+ $args->member_srl = $member_srl; -+ $output = executeQuery('comment.getCommentCountByMemberSrl', $args); -+ $total_count = $output->data->count; -+ -+ return (int) $total_count; -+ } -+ -+ -+ /** -+ * Get comment list of the doc in corresponding woth member_srl. -+ * @param int $member_srl -+ * @param array $columnList -+ * @param int $page -+ * @param bool $is_admin -+ * @param int $count -+ * @return object -+ */ -+ function getCommentListByMemberSrl($member_srl, $columnList = array(), $page = 0, $is_admin = FALSE, $count = 0) -+ { -+ $args = new stdClass(); -+ $args->member_srl = $member_srl; -+ $args->list_count = $count; -+ $output = executeQuery('comment.getCommentListByMemberSrl', $args, $columnList); -+ $comment_list = $output->data; -+ -+ if(!$comment_list) return; -+ if(!is_array($comment_list)) $comment_list = array($comment_list); -+ -+ return $comment_list; -+ -+ } -+ - } - /* End of file comment.model.php */ - /* Location: ./modules/comment/comment.model.php */ -diff --git a/modules/comment/queries/getCommentCountByMemberSrl.xml b/modules/comment/queries/getCommentCountByMemberSrl.xml -new file mode 100644 -index 0000000..f81db46 ---- /dev/null -+++ b/modules/comment/queries/getCommentCountByMemberSrl.xml -@@ -0,0 +1,11 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/modules/comment/queries/getCommentListByMemberSrl.xml b/modules/comment/queries/getCommentListByMemberSrl.xml -new file mode 100644 -index 0000000..6d8c680 ---- /dev/null -+++ b/modules/comment/queries/getCommentListByMemberSrl.xml -@@ -0,0 +1,19 @@ -+ -+ -+
-+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/modules/document/document.model.php b/modules/document/document.model.php -index 94840fc..b8938eb 100644 ---- a/modules/document/document.model.php -+++ b/modules/document/document.model.php -@@ -1490,6 +1490,44 @@ class documentModel extends document - } - } - } -+ -+ /** -+ * Get the total number of Document in corresponding with member_srl. -+ * @param int $member_srl -+ * @return int -+ */ -+ function getDocumentCountByMemberSrl($member_srl) -+ { -+ $args = new stdClass(); -+ $args->member_srl = $member_srl; -+ $output = executeQuery('document.getDocumentCountByMemberSrl', $args); -+ $total_count = $output->data->count; -+ -+ return (int) $total_count; -+ } -+ -+ /** -+ * Get document list of the doc in corresponding woth member_srl. -+ * @param int $member_srl -+ * @param array $columnList -+ * @param int $page -+ * @param bool $is_admin -+ * @param int $count -+ * @return object -+ */ -+ function getDocumentListByMemberSrl($member_srl, $columnList = array(), $page = 0, $is_admin = FALSE, $count = 0 ) -+ { -+ $args = new stdClass(); -+ $args->member_srl = $member_srl; -+ $args->list_count = $count; -+ $output = executeQuery('document.getDocumentListByMemberSrl', $args, $columnList); -+ $document_list = $output->data; -+ -+ if(!$document_list) return; -+ if(!is_array($document_list)) $document_list = array($document_list); -+ -+ return $document_list; -+ } - } - /* End of file document.model.php */ - /* Location: ./modules/document/document.model.php */ -diff --git a/modules/document/document.view.php b/modules/document/document.view.php -index 788708b..497050d 100644 ---- a/modules/document/document.view.php -+++ b/modules/document/document.view.php -@@ -176,6 +176,7 @@ class documentView extends document - $this->setTemplatePath($this->module_path.'tpl'); - $this->setTemplateFile('saved_list_popup'); - } -+ - } - /* End of file document.view.php */ - /* Location: ./modules/document/document.view.php */ -diff --git a/modules/document/queries/getDocumentCountByMemberSrl.xml b/modules/document/queries/getDocumentCountByMemberSrl.xml -new file mode 100644 -index 0000000..ed457fb ---- /dev/null -+++ b/modules/document/queries/getDocumentCountByMemberSrl.xml -@@ -0,0 +1,11 @@ -+ -+ -+
-+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/modules/document/queries/getDocumentListByMemberSrl.xml b/modules/document/queries/getDocumentListByMemberSrl.xml -new file mode 100644 -index 0000000..49e8035 ---- /dev/null -+++ b/modules/document/queries/getDocumentListByMemberSrl.xml -@@ -0,0 +1,17 @@ -+ -+ -+
-+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml -index 5cbe433..a2f7f2b 100644 ---- a/modules/member/conf/module.xml -+++ b/modules/member/conf/module.xml -@@ -20,6 +20,7 @@ - - - -+ - - - -@@ -68,6 +69,7 @@ - - - -+ - - - -diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml -index 0a9eced..d5524e7 100644 ---- a/modules/member/lang/lang.xml -+++ b/modules/member/lang/lang.xml -@@ -2619,5 +2619,16 @@ - - - -- -+ -+ -+ -+ -+ -+ 스팸 작성자 차단/삭제 및 회원이 남긴 글과 댓글을 모두 휴지통 이동 또는 삭제 합니다. 이 처리는 회원이 작성한 게시물의 양에 따라 오래걸릴 수 있습니다.

]]>
-+ Spam user management. This function remove all of documents, comments

]]>
-+
-+ -+ -+ -+ - -diff --git a/modules/member/member.class.php b/modules/member/member.class.php -index e7bde82..86f7059 100644 ---- a/modules/member/member.class.php -+++ b/modules/member/member.class.php -@@ -144,6 +144,9 @@ class member extends ModuleObject { - FileHandler::makeDir('./files/member_extra_info/profile_image'); - FileHandler::makeDir('./files/member_extra_info/signature'); - -+ // 2013. 11. 22 add menu when popup document menu called -+ $oModuleController->insertTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after'); -+ - return new Object(); - } - -@@ -208,6 +211,9 @@ class member extends ModuleObject { - if(!is_readable('./files/ruleset/login.xml')) return true; - if(!is_readable('./files/ruleset/find_member_account_by_question.xml')) return true; - -+ // 2013. 11. 22 add menu when popup document menu called -+ if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after')) return true; -+ - return false; - } - -@@ -345,6 +351,10 @@ class member extends ModuleObject { - if(!is_readable('./files/ruleset/find_member_account_by_question.xml')) - $oMemberAdminController->_createFindAccountByQuestion($config->identifier); - -+ // 2013. 11. 22 add menu when popup document menu called -+ if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after')) -+ $oModuleController->insertTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after'); -+ - return new Object(0, 'success_updated'); - } - -diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php -index 6a4d769..af0331c 100644 ---- a/modules/member/member.controller.php -+++ b/modules/member/member.controller.php -@@ -2354,6 +2354,186 @@ class memberController extends member - $this->setTemplatePath($this->module_path.'tpl'); - $this->setTemplateFile('msg_success_modify_email_address'); - } -+ -+ /** -+ * trigger for document.getDocumentMenu. Append to popup menu a button for procMemberSpammerManage() -+ * -+ * @param array &$menu_list -+ * -+ * @return object -+ **/ -+ function triggerGetDocumentMenu(&$menu_list) -+ { -+ $is_logged = Context::get('is_logged'); -+ $logged_info = Context::get('logged_info'); -+ -+ -+ $document_srl = Context::get('target_srl'); -+ -+ $oDocumentModel = &getModel('document'); -+ $columnList = array('document_srl', 'module_srl', 'member_srl', 'ipaddress'); -+ $oDocument = $oDocumentModel->getDocument($document_srl, false, false, $columnList); -+ $member_srl = $oDocument->get('member_srl'); -+ $module_srl = $oDocument->get('module_srl'); -+ -+ if(!$member_srl) return new Object(); -+ if(!$is_logged) return new Object(); -+ if($oDocumentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object(); -+ -+ $oDocumentController = &getController('document'); -+ $url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl); -+ $oDocumentController->addDocumentPopupMenu($url,'cmd_spammer','','popup'); -+ -+ return new Object(); -+ } -+ -+ /** -+ * Spammer manage. Denied user login. And delete or trash all documents. Response Ajax string -+ * -+ * @return object -+ **/ -+ function procMemberSpammerManage() -+ { -+ $logged_info = Context::get('logged_info'); -+ $member_srl = Context::get('member_srl'); -+ $module_srl = Context::get('module_srl'); -+ $cnt_loop = Context::get('cnt_loop'); -+ $proc_type = Context::get('proc_type'); -+ $isMoveToTrash = true; -+ if($proc_type == "delete") -+ $isMoveToTrash = false; -+ -+ // check grant -+ $oModuleModel = &getModel('module'); -+ $columnList = array('module_srl', 'module'); -+ $args = new stdClass(); -+ $args->module_srl = $module_srl; -+ $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl, $columnList); -+ $grant = $oModuleModel->getGrant($module_info, $logged_info); -+ -+ if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); -+ if(!$grant->manager) return new Object(-1,'msg_not_permitted'); -+ -+ $proc_msg = ""; -+ -+ $oDocumentController = &getController('document'); -+ $oDocumentModel = &getModel('document'); -+ $oCommentController = &getController('comment'); -+ $oCommentModel = &getModel('comment'); -+ -+ // delete or trash destination -+ // proc member -+ if($cnt_loop == 1) -+ { -+ $this->_spammerMember($member_srl); -+ } -+ // proc document and comment -+ elseif($cnt_loop>1) -+ { -+ $this->_spammerDocuments($member_srl, $isMoveToTrash); -+ } -+ -+ // get destination count -+ $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); -+ $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); -+ -+ $total_count = Context::get('total_count'); -+ $remain_count = $cnt_document + $cnt_comment; -+ if($cnt_loop == 1) { -+ $total_count = $remain_count; -+ } -+ -+ // get progress percent -+ if( $total_count > 0 ) -+ $progress = intval( ( ( $total_count - $remain_count ) / $total_count ) * 100 ); -+ else -+ $progress = 100; -+ -+ $this->add('total_count', $total_count); -+ $this->add('remain_count', $remain_count); -+ $this->add('progress', $progress); -+ $this->add('member_srl', $member_srl); -+ $this->add('module_srl', $module_srl); -+ $this->add('cnt_loop', ++$cnt_loop); -+ $this->add('proc_type', $proc_type); -+ -+ $this->add( "retdata", $arrJson); -+ return new Object(0); -+ } -+ -+ /** -+ * Denied user login and write description -+ * -+ * @param int $member_srl -+ * -+ * @return bool -+ **/ -+ private function _spammerMember($member_srl) { -+ $logged_info = Context::get('logged_info'); -+ $spam_description = Context::get('spam_description'); -+ -+ $oMemberModel = &getModel('member'); -+ $columnList = array(); -+ // get member current infomation -+ $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); -+ // set change infomations -+ $member_info->denied = "Y"; -+ -+ if( $member_info->description != "" ) $member_info->description .= "\n"; // add new line -+ $member_info->description .= Context::getLang('cmd_spammer') . "[" . date("Y-m-d H:i:s") . " from:" . $logged_info->user_id . " info:" . $spam_description . "]"; -+ -+ $oMemberController = &getController('member'); -+ $output = executeQuery('member.updateMember', $member_info); -+ $proc_msg .= "member info updated\t"; -+ -+ return true; -+ } -+ -+ /** -+ * Delete or trash all documents -+ * -+ * @param int $member_srl -+ * @param bool $isMoveToTrash -+ * -+ * @return bool -+ **/ -+ private function _spammerDocuments($member_srl, $isMoveToTrash) { -+ -+ $logged_info = Context::get('logged_info'); -+ -+ $oDocumentController = &getController('document'); -+ $oDocumentModel = &getModel('document'); -+ $oCommentController = &getController('comment'); -+ $oCommentModel = &getModel('comment'); -+ -+ // delete count by one request -+ $getContentsCount = 10; -+ -+ // 1. proc comment, 2. proc document -+ $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); -+ $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); -+ if($cnt_comment > 0) -+ { -+ $columnList = array(); -+ $commentList = $oCommentModel->getCommentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount); -+ if($commentList) { -+ foreach($commentList as $v) { -+ $oCommentController->deleteComment($v->comment_srl, true, $isMoveToTrash); -+ } -+ } -+ } elseif($cnt_document > 0) { -+ $columnList = array(); -+ $documentList = $oDocumentModel->getDocumentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount); -+ if($documentList) { -+ foreach($documentList as $v) { -+ if($isMoveToTrash) $oDocumentController->moveDocumentToTrash($v); -+ else $oDocumentController->deleteDocument($v->document_srl); -+ } -+ } -+ } -+ -+ return true; -+ } - } - /* End of file member.controller.php */ - /* Location: ./modules/member/member.controller.php */ -diff --git a/modules/member/member.view.php b/modules/member/member.view.php -index 380cecf..31c49a7 100644 ---- a/modules/member/member.view.php -+++ b/modules/member/member.view.php -@@ -611,6 +611,43 @@ class memberView extends member - - Context::addHtmlHeader($js_code); - } -+ -+ /** -+ * Spammer manage popup -+ * -+ * @return void -+ **/ -+ function dispMemberSpammer() -+ { -+ $member_srl = Context::get('member_srl'); -+ $module_srl = Context::get('module_srl'); -+ -+ // check grant -+ $oModuleModel = &getModel('module'); -+ $columnList = array('module_srl', 'module'); -+ $args = new stdClass(); -+ $args->module_srl = $module_srl; -+ $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl, $columnList); -+ $grant = $oModuleModel->getGrant($module_info, Context::get('logged_info')); -+ -+ if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); -+ if(!$grant->manager) return new Object(-1,'msg_not_permitted'); -+ -+ $oMemberModel = &getModel('member'); -+ $spammer_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); -+ -+ Context::loadLang('modules/document/lang/'); -+ Context::set('spammer_info',$spammer_info); -+ Context::set('module_srl',$module_srl); -+ -+ // Select Pop-up layout -+ $this->setLayoutPath('./common/tpl'); -+ $this->setLayoutFile('popup_layout'); -+ -+ $this->setTemplatePath($this->module_path.'tpl'); -+ $this->setTemplateFile('spammer'); -+ } -+ - } - /* End of file member.view.php */ - /* Location: ./modules/member/member.view.php */ -diff --git a/modules/member/skins/default/js/member.js b/modules/member/skins/default/js/member.js -index 9422cfd..41c8e72 100644 ---- a/modules/member/skins/default/js/member.js -+++ b/modules/member/skins/default/js/member.js -@@ -160,3 +160,4 @@ function doDeleteSavedDocument(document_srl, confirm_message) { - function insertSelectedModule(id, module_srl, mid, browser_title) { - location.href = current_url.setQuery('selected_module_srl',module_srl); - } -+ -diff --git a/modules/member/tpl/spammer.html b/modules/member/tpl/spammer.html -new file mode 100644 -index 0000000..d371f0f ---- /dev/null -+++ b/modules/member/tpl/spammer.html -@@ -0,0 +1,110 @@ -+ -+ -+ -+
-+

{$lang->cmd_spammer}

-+
-+ -+
-+ -+ -+ -+ -+ -+ -+
-+
{$lang->description} : {$lang->spammer_description}
-+
{$lang->nick_name} : {$spammer_info->nick_name}
-+ -+
-+

{$lang->about_member_description}

-+ -+
-+
-+ -+ -+
-+ -+
-+
Document Count :
-+
-+
-+
-+
{$lang->cmd_complete}
-+
-+
-+
{$lang->success_declare_canceled}
-+
-+ -+