Fix #2100 allow sender, recipient, and other info to be updated by trigger in communication.sendMessage

This commit is contained in:
Kijin Sung 2023-06-27 21:49:07 +09:00
parent c5a3f5722a
commit 77ac355259

View file

@ -174,6 +174,30 @@ class communicationController extends communication
$message_srl = $temp_srl ?: getNextSequence();
$related_srl = getNextSequence();
// Call a trigger (before)
$trigger_obj = new stdClass();
$trigger_obj->sender_srl = $sender_srl;
$trigger_obj->receiver_srl = $receiver_srl;
$trigger_obj->message_srl = $message_srl;
$trigger_obj->related_srl = $related_srl;
$trigger_obj->title = $title;
$trigger_obj->content = $content;
$trigger_obj->sender_log = $sender_log;
$trigger_obj->use_spamfilter = $use_spamfilter;
$trigger_output = ModuleHandler::triggerCall('communication.sendMessage', 'before', $trigger_obj);
if(!$trigger_output->toBool())
{
return $trigger_output;
}
// Copy trigger result
$sender_srl = $trigger_obj->sender_srl ?? $sender_srl;
$receiver_srl = $trigger_obj->receiver_srl ?? $receiver_srl;
$title = $trigger_obj->title ?? $title;
$content = $trigger_obj->content ?? $content;
$sender_log = boolval($trigger_obj->sender_log ?? $sender_log);
$use_spamfilter = boolval($trigger_obj->use_spamfilter ?? $use_spamfilter);
// messages to save in the sendor's message box
$sender_args = new stdClass();
$sender_args->sender_srl = $sender_srl;
@ -204,22 +228,6 @@ class communicationController extends communication
$receiver_args->readed = 'N';
$receiver_args->regdate = date("YmdHis");
// Call a trigger (before)
$trigger_obj = new stdClass();
$trigger_obj->sender_srl = $sender_srl;
$trigger_obj->receiver_srl = $receiver_srl;
$trigger_obj->message_srl = $message_srl;
$trigger_obj->related_srl = $related_srl;
$trigger_obj->title = $title;
$trigger_obj->content = $content;
$trigger_obj->sender_log = $sender_log;
$trigger_obj->use_spamfilter = $use_spamfilter;
$trigger_output = ModuleHandler::triggerCall('communication.sendMessage', 'before', $trigger_obj);
if(!$trigger_output->toBool())
{
return $trigger_output;
}
$oDB = DB::getInstance();
$oDB->begin();