diff --git a/modules/communication/communication.controller.php b/modules/communication/communication.controller.php index 3362ef2cd..7965872e1 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -195,12 +195,16 @@ $oCommunicationModel = &getModel('communication'); $message = $oCommunicationModel->getSelectedMessage($message_srl); if(!$message) return new Object(-1,'msg_invalid_request'); - // Check a message type if 'S' or 'R' - if($message->sender_srl == $member_srl && $message->message_type == 'S') { - if(!$message_srl) return new Object(-1, 'msg_invalid_request'); - } elseif($message->receiver_srl == $member_srl && $message->message_type == 'R') { - if(!$message_srl) return new Object(-1, 'msg_invalid_request'); - } + // Check the grant + switch($message->message_type) + { + case 'S': + if($message->sender_srl != $member_srl) return new Object(-1, 'msg_invalid_request'); + break; + case 'R': + if($message->receiver_srl != $member_srl) return new Object(-1, 'msg_invalid_request'); + break; + } // Delete $args->message_srl = $message_srl; $output = executeQuery('communication.deleteMessage', $args); diff --git a/modules/communication/communication.view.php b/modules/communication/communication.view.php index 92cbeb236..d30d20214 100644 --- a/modules/communication/communication.view.php +++ b/modules/communication/communication.view.php @@ -62,6 +62,27 @@ if($message_srl) { $columnList = array('message_srl', 'sender_srl', 'receiver_srl', 'message_type', 'title', 'content', 'readed', 'regdate'); $message = $oCommunicationModel->getSelectedMessage($message_srl, $columnList); + switch($message->message_type) + { + case 'R': + if($message->receiver_srl != $logged_info->member_srl) + { + return $this->stop('msg_invalid_request'); + } + break; + case 'S': + if($message->sender_srl != $logged_info->member_srl) + { + return $this->stop('msg_invalid_request'); + } + break; + case 'T': + if($message->receiver_srl != $logged_info->member_srl && $message->sender_srl != $logged_info->member_srl) + { + return $this->stop('msg_invalid_request'); + } + break; + } if($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl) ) { stripEmbedTagForAdmin($message->content, $message->sender_srl); Context::set('message', $message);