Skip to content

Commit

Permalink
MDL-30260 message: added /message/upgrade.txt, checked calls to messa…
Browse files Browse the repository at this point in the history
…ge_send() are supplying user.emailstop and improved message_send() to handle message requests that don't
  • Loading branch information
andyjdavis committed Nov 30, 2011
1 parent 735de1c commit d8aa5ec
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 5 deletions.
3 changes: 3 additions & 0 deletions error/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
$supportuser->email = $CFG->supportemail ? $CFG->supportemail : $admin->email;
$supportuser->firstname = $CFG->supportname ? $CFG->supportname : $admin->firstname;
$supportuser->lastname = $CFG->supportname ? '' : $admin->lastname;
// emailstop could be hard coded "false" to ensure error reports are sent
// but then admin's would have to alter their messaging preferences to temporarily stop them
$supportuser->emailstop = $admin->emailstop;
$supportuser->maildisplay = true;

/// Send the message and redirect
Expand Down
2 changes: 1 addition & 1 deletion lib/accesslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -3733,7 +3733,7 @@ function get_role_users($roleid, context $context, $parent = false, $fields = ''

if (empty($fields)) {
$fields = 'u.id, u.confirmed, u.username, u.firstname, u.lastname, '.
'u.maildisplay, u.mailformat, u.maildigest, u.email, u.city, '.
'u.maildisplay, u.mailformat, u.maildigest, u.email, u.emailstop, u.city, '.
'u.country, u.picture, u.idnumber, u.department, u.institution, '.
'u.lang, u.timezone, u.lastaccess, u.mnethostid, r.name AS rolename, r.sortorder';
}
Expand Down
11 changes: 9 additions & 2 deletions lib/messagelib.php
Original file line number Diff line number Diff line change
Expand Up @@ -139,12 +139,19 @@ function message_send($eventdata) {
debugging('Attempt to force message delivery to user who has "'.$processor->name.'" output unconfigured', DEBUG_NORMAL);
}

// Warn developers that necessary data is missing regardless of how the processors are configured
if (!isset($eventdata->userto->emailstop)) {
debugging('userto->emailstop is not set. Retrieving it from the user table');
$eventdata->userto->emailstop = $DB->get_field('user', 'emailstop', array('id'=>$eventdata->userto->id));
}

// Populate the list of processors we will be using
if ($permitted == 'forced' && $userisconfigured) {
// We force messages for this processor, so use this processor unconditionally if user has configured it
// An admin is forcing users to use this message processor. Use this processor unconditionally.
$processorlist[] = $processor->name;
} else if ($permitted == 'permitted' && $userisconfigured && !$eventdata->userto->emailstop) {
// User settings are permitted, see if user set any, otherwise use site default ones
// User has not disabled notifications
// See if user set any notification preferences, otherwise use site default ones
$userpreferencename = 'message_provider_'.$preferencebase.'_'.$userstate;
if ($userpreference = get_user_preferences($userpreferencename, null, $eventdata->userto->id)) {
if (in_array($processor->name, explode(',', $userpreference))) {
Expand Down
9 changes: 9 additions & 0 deletions message/upgrade.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This files describes API changes in /message/ messaging system,
information provided here is intended especially for developers.

=== 2.2 ===

required changes:
* lib/messagelib.php message_send($eventdata)
$eventdata->userto should contain a property called "emailstop", $eventdata->userto->emailstop
If it is absent it will be retrieved from the user table causing an additional database query
3 changes: 2 additions & 1 deletion mod/forum/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -2855,6 +2855,7 @@ function forum_subscribed_users($course, $forum, $groupid=0, $context = null, $f
u.maildigest,
u.imagealt,
u.email,
u.emailstop,
u.city,
u.country,
u.lastaccess,
Expand Down Expand Up @@ -8357,4 +8358,4 @@ function forum_get_posts_by_user($user, array $courses, $musthaveaccess = false,
}

return $return;
}
}
2 changes: 1 addition & 1 deletion mod/quiz/locallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -1174,7 +1174,7 @@ function quiz_send_notification_messages($course, $quiz, $attempt, $context, $cm
}

// check for notifications required
$notifyfields = 'u.id, u.username, u.firstname, u.lastname, u.idnumber, u.email, ' .
$notifyfields = 'u.id, u.username, u.firstname, u.lastname, u.idnumber, u.email, u.emailstop, ' .
'u.lang, u.timezone, u.mailformat, u.maildisplay';
$groups = groups_get_all_groups($course->id, $submitter->id);
if (is_array($groups) && count($groups) > 0) {
Expand Down

0 comments on commit d8aa5ec

Please sign in to comment.