Merge pull request #1123 from kijin/fix/trash-point

휴지통과 관련된 포인트 회수 처리의 일관성 개선 #1119
This commit is contained in:
Kijin Sung 2018-12-13 22:29:56 +09:00 committed by GitHub
commit f58be6185e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 56 additions and 6 deletions

View file

@ -220,7 +220,7 @@ class commentAdminController extends comment
continue;
}
$output = $oCommentController->deleteComment($comment_srl, TRUE, $isTrash);
$output = $oCommentController->deleteComment($comment_srl, TRUE, toBool($isTrash));
if(!$output->toBool())
{
$oDB->rollback();
@ -310,6 +310,16 @@ class commentAdminController extends comment
$oDB->rollback();
return $output;
}
$obj = new stdClass;
$obj->comment_srl = $oComment->get('comment_srl');
$obj->module_srl = $oComment->get('module_srl');
$obj->document_srl = $oComment->get('document_srl');
$obj->parent_srl = $oComment->get('parent_srl');
$obj->member_srl = $oComment->get('member_srl');
$obj->regdate = $oComment->get('regdate');
$obj->last_update = $oComment->get('last_update');
ModuleHandler::triggerCall('comment.moveCommentToTrash', 'after', $obj);
}
}
}

View file

@ -1016,6 +1016,7 @@ class commentController extends comment
$document_srl = $comment->document_srl;
// call a trigger (before)
$comment->isMoveToTrash = $isMoveToTrash ? true : false;
$output = ModuleHandler::triggerCall('comment.deleteComment', 'before', $comment);
if(!$output->toBool())
{
@ -1123,7 +1124,6 @@ class commentController extends comment
}
// call a trigger (after)
$comment->isMoveToTrash = $isMoveToTrash;
ModuleHandler::triggerCall('comment.deleteComment', 'after', $comment);
unset($comment->isMoveToTrash);
@ -1179,9 +1179,8 @@ class commentController extends comment
return new BaseObject(-1, 'msg_admin_comment_no_move_to_trash');
}
$trash_args->module_srl = $oComment->variables['module_srl'];
$obj->module_srl = $oComment->variables['module_srl'];
$obj->module_srl = $oComment->get('module_srl');
$trash_args->module_srl = $obj->module_srl;
if($trash_args->module_srl === 0)
{
return new BaseObject(-1, 'msg_module_srl_not_exists');
@ -1257,6 +1256,11 @@ class commentController extends comment
executeQuery('file.updateFileValid', $args);
}
$obj->document_srl = $oComment->get('document_srl');
$obj->parent_srl = $oComment->get('parent_srl');
$obj->member_srl = $oComment->get('member_srl');
$obj->regdate = $oComment->get('regdate');
$obj->last_update = $oComment->get('last_update');
ModuleHandler::triggerCall('comment.moveCommentToTrash', 'after', $obj);
$oDB->commit();

View file

@ -397,6 +397,7 @@ class documentController extends document
if($obj->notify_message != 'Y') $obj->notify_message = 'N';
if(!$obj->email_address) $obj->email_address = '';
if(!$isRestore) $obj->ipaddress = $_SERVER['REMOTE_ADDR'];
$obj->isRestore = $isRestore ? true : false;
// Default Status
if($obj->status)
@ -936,6 +937,7 @@ class documentController extends document
// Call a trigger (before)
$trigger_obj = new stdClass();
$trigger_obj->document_srl = $document_srl;
$trigger_obj->isEmptyTrash = $isEmptyTrash ? true : false;
$output = ModuleHandler::triggerCall('document.deleteDocument', 'before', $trigger_obj);
if(!$output->toBool()) return $output;
@ -992,6 +994,7 @@ class documentController extends document
// Call a trigger (after)
$trigger_obj = $oDocument->getObjectVars();
$trigger_obj->isEmptyTrash = $isEmptyTrash ? true : false;
ModuleHandler::triggerCall('document.deleteDocument', 'after', $trigger_obj);
// declared document, log delete
@ -1153,6 +1156,10 @@ class documentController extends document
}
// Call a trigger (after)
$obj->module_srl = $oDocument->get('module_srl');
$obj->member_srl = $oDocument->get('member_srl');
$obj->regdate = $oDocument->get('regdate');
$obj->last_update = $oDocument->get('last_update');
ModuleHandler::triggerCall('document.moveDocumentToTrash', 'after', $obj);
// commit

View file

@ -32,9 +32,11 @@ class point extends ModuleObject
array('document.insertDocument', 'after', 'controller', 'triggerInsertDocument'),
array('document.updateDocument', 'before', 'controller', 'triggerUpdateDocument'),
array('document.deleteDocument', 'after', 'controller', 'triggerDeleteDocument'),
array('document.moveDocumentToTrash', 'after', 'controller', 'triggerTrashDocument'),
array('comment.insertComment', 'after', 'controller', 'triggerInsertComment'),
array('comment.updateComment', 'after', 'controller', 'triggerUpdateComment'),
array('comment.deleteComment', 'after', 'controller', 'triggerDeleteComment'),
array('comment.moveCommentToTrash', 'after', 'controller', 'triggerTrashComment'),
array('file.deleteFile', 'after', 'controller', 'triggerDeleteFile'),
array('file.downloadFile', 'before', 'controller', 'triggerBeforeDownloadFile'),
array('file.downloadFile', 'after', 'controller', 'triggerDownloadFile'),

View file

@ -176,7 +176,7 @@ class pointController extends point
}
/**
* @brief A trigger to give points for deleting the post
* @brief A trigger to deduct points for deleting the post
*/
public function triggerDeleteDocument($obj)
{
@ -186,6 +186,10 @@ class pointController extends point
{
return;
}
if ($obj->isEmptyTrash)
{
return;
}
// The fix to disable giving points for saving the document temporarily
if ($module_srl == $member_srl)
@ -211,6 +215,14 @@ class pointController extends point
$this->setPoint($member_srl, $cur_point);
}
/**
* @brief A trigger to deduct points when a document is moved to Trash
*/
public function triggerTrashDocument($obj)
{
return $this->triggerDeleteDocument($obj);
}
/**
* @brief A trigger which gives points for entering a comment
*/
@ -275,6 +287,10 @@ class pointController extends point
{
return;
}
if ($obj->isMoveToTrash)
{
return;
}
// Abort if the comment and the document have the same author.
$oDocument = getModel('document')->getDocument($obj->document_srl);
@ -291,6 +307,9 @@ class pointController extends point
return;
}
// Get the module_srl of the document to which this comment belongs
$module_srl = $oDocument->get('module_srl');
// Get the points of the member
$cur_point = getModel('point')->getPoint($member_srl);
@ -302,6 +321,14 @@ class pointController extends point
$this->setPoint($member_srl, $cur_point);
}
/**
* @brief A trigger to deduct points when a comment is moved to Trash
*/
public function triggerTrashComment($obj)
{
return $this->triggerDeleteComment($obj);
}
/**
* @brief Add the file registration trigger
* To prevent taking points for invalid file registration this method wlil return a null object