From 3b70790aee2b004d087cf42936633e769429d2b3 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Thu, 29 Dec 2011 16:47:40 +0100 Subject: [PATCH] MDL-30948 stop messaging suspended and deleted users --- lib/messagelib.php | 3 +++ lib/moodlelib.php | 2 +- message/output/email/message_output_email.php | 5 +++++ message/output/jabber/message_output_jabber.php | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/messagelib.php b/lib/messagelib.php index f4cef587033..a92c60f0a02 100644 --- a/lib/messagelib.php +++ b/lib/messagelib.php @@ -64,6 +64,9 @@ function message_send($eventdata) { if (is_int($eventdata->userfrom)) { $eventdata->userfrom = $DB->get_record('user', array('id' => $eventdata->userfrom)); } + if (!isset($eventdata->userto->auth) or !isset($eventdata->userto->suspended) or !isset($eventdata->userto->deleted)) { + $eventdata->userto = $DB->get_record('user', array('id' => $eventdata->userto->id)); + } //after how long inactive should the user be considered logged off? if (isset($CFG->block_online_users_timetosee)) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 4d2e7978378..047430b48c0 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4620,7 +4620,7 @@ function email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $a } // skip mail to suspended users - if (isset($user->auth) && $user->auth=='nologin') { + if ((isset($user->auth) && $user->auth=='nologin') or (isset($user->suspended) && $user->suspended)) { return true; } diff --git a/message/output/email/message_output_email.php b/message/output/email/message_output_email.php index 89b3f004a27..80262db6e5e 100644 --- a/message/output/email/message_output_email.php +++ b/message/output/email/message_output_email.php @@ -46,6 +46,11 @@ class message_output_email extends message_output { return true; } + // skip any messaging suspended and deleted users + if ($eventdata->userto->auth === 'nologin' or $eventdata->userto->suspended or $eventdata->userto->deleted) { + return true; + } + //the user the email is going to $recipient = null; diff --git a/message/output/jabber/message_output_jabber.php b/message/output/jabber/message_output_jabber.php index 1fe3ab5e760..c4dbbba1db7 100644 --- a/message/output/jabber/message_output_jabber.php +++ b/message/output/jabber/message_output_jabber.php @@ -50,6 +50,11 @@ class message_output_jabber extends message_output { return true; } + // skip any messaging suspended and deleted users + if ($eventdata->userto->auth === 'nologin' or $eventdata->userto->suspended or $eventdata->userto->deleted) { + return true; + } + //hold onto jabber id preference because /admin/cron.php sends a lot of messages at once static $jabberaddresses = array();