diff --git a/message/classes/api.php b/message/classes/api.php index 163150dff45..291e0127e3b 100644 --- a/message/classes/api.php +++ b/message/classes/api.php @@ -1982,6 +1982,15 @@ class api { global $DB; + $validtypes = [ + self::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL, + self::MESSAGE_CONVERSATION_TYPE_GROUP + ]; + + if (!in_array($type, $validtypes)) { + throw new \moodle_exception('An invalid conversation type was specified.'); + } + // Sanity check. if ($type == self::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL) { if (count($userids) > 2) { diff --git a/message/tests/api_test.php b/message/tests/api_test.php index babfa107017..145ec68cd7d 100644 --- a/message/tests/api_test.php +++ b/message/tests/api_test.php @@ -4793,6 +4793,14 @@ class core_message_api_testcase extends core_message_messagelib_testcase { $this->assertEquals($conversation->id, $member3->conversationid); } + /** + * Test creating an invalid conversation. + */ + public function test_create_conversation_invalid() { + $this->expectException('moodle_exception'); + \core_message\api::create_conversation(3, [1, 2, 3]); + } + /** * Test creating an individual conversation with too many members. */