MDL-63834 core_message: validate conversation type before creating

This commit is contained in:
Mark Nelson 2018-11-13 08:37:09 +08:00
parent 08c51ff080
commit 869eac8204
2 changed files with 17 additions and 0 deletions

View File

@ -1681,6 +1681,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) {

View File

@ -3945,6 +3945,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.
*/