MDL-54928 notifications: Retrieve username from DB if empty
[moodle.git] / message / output / airnotifier / message_output_airnotifier.php
index c4f3e9a..709ed96 100644 (file)
@@ -43,7 +43,7 @@ class message_output_airnotifier extends message_output {
      * @return true if ok, false if error
      */
     public function send_message($eventdata) {
      * @return true if ok, false if error
      */
     public function send_message($eventdata) {
-        global $CFG;
+        global $CFG, $DB;
         require_once($CFG->libdir . '/filelib.php');
 
         if (!empty($CFG->noemailever)) {
         require_once($CFG->libdir . '/filelib.php');
 
         if (!empty($CFG->noemailever)) {
@@ -59,6 +59,11 @@ class message_output_airnotifier extends message_output {
             return true;
         }
 
             return true;
         }
 
+        // If username is empty we try to retrieve it, since it's required to generate the siteid.
+        if (empty($eventdata->userto->username)) {
+            $eventdata->userto->username = $DB->get_field('user', 'username', array('id' => $eventdata->userto->id));
+        }
+
         // Site id, to map with Moodle Mobile stored sites.
         $siteid = md5($CFG->wwwroot . $eventdata->userto->username);
 
         // Site id, to map with Moodle Mobile stored sites.
         $siteid = md5($CFG->wwwroot . $eventdata->userto->username);