MDL-68070 messaging: Fix error when personal notification is disabled
authorSimon Mok <simonmok@outlook.com>
Mon, 12 Oct 2020 11:30:02 +0000 (19:30 +0800)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 13 Oct 2020 21:40:46 +0000 (23:40 +0200)
lang/en/error.php
message/classes/api.php

index 7530ded..874ecbd 100644 (file)
@@ -391,6 +391,7 @@ $string['loginasonecourse'] = 'You cannot enter this course.<br /> You have to t
 $string['maxbytesfile'] = 'The file {$a->file} is too large. The maximum size you can upload is {$a->size}.';
 $string['maxareabytes'] = 'The file is larger than the space remaining in this area.';
 $string['messagingdisable'] = 'Messaging is disabled on this site';
+$string['messageundeliveredbynotificationsettings'] = 'Message failed to deliver. Please check the notification settings.';
 $string['mimetexisnotexist'] = 'Your system is not configured to run mimeTeX. You need to obtain the C source from <a href="https://www.forkosh.com/mimetex.zip">https://www.forkosh.com/mimetex.zip</a>, compile it and put the executable into your moodle/filter/tex/ directory.';
 $string['mimetexnotexecutable'] = 'Custom mimetex is not executable!';
 $string['missingfield'] = 'Field "{$a}" is missing';
index 4d758b1..dd6bea6 100644 (file)
@@ -1699,6 +1699,10 @@ class api {
 
         $messageid = message_send($eventdata);
 
+        if (!$messageid) {
+            throw new \moodle_exception('messageundeliveredbynotificationsettings', 'moodle');
+        }
+
         $messagerecord = $DB->get_record('messages', ['id' => $messageid], 'id, useridfrom, fullmessage,
                 timecreated, fullmessagetrust');
         $message = (object) [