mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +02:00
MDL-67853 message: Remove on/offline settings on message preferences
This commit is contained in:
parent
e8ad1eaa43
commit
d74bd798b6
44 changed files with 696 additions and 682 deletions
|
@ -208,20 +208,6 @@ class manager {
|
|||
return false;
|
||||
}
|
||||
|
||||
// Set the online state.
|
||||
if (isset($CFG->block_online_users_timetosee)) {
|
||||
$timetoshowusers = $CFG->block_online_users_timetosee * 60;
|
||||
} else {
|
||||
$timetoshowusers = 300;
|
||||
}
|
||||
|
||||
// Work out if the user is logged in or not.
|
||||
$userstate = 'loggedoff';
|
||||
if (!empty($localisedeventdata->userto->lastaccess)
|
||||
&& (time() - $timetoshowusers) < $localisedeventdata->userto->lastaccess) {
|
||||
$userstate = 'loggedin';
|
||||
}
|
||||
|
||||
// Fill in the array of processors to be used based on default and user preferences.
|
||||
// Do not process muted conversations.
|
||||
$processorlist = [];
|
||||
|
@ -233,23 +219,30 @@ class manager {
|
|||
}
|
||||
|
||||
// First find out permissions.
|
||||
$defaultpreference = $processor->name . '_provider_' . $preferencebase . '_permitted';
|
||||
if (isset($defaultpreferences->{$defaultpreference})) {
|
||||
$permitted = $defaultpreferences->{$defaultpreference};
|
||||
$defaultlockedpreference = $processor->name . '_provider_' . $preferencebase . '_locked';
|
||||
$locked = false;
|
||||
if (isset($defaultpreferences->{$defaultlockedpreference})) {
|
||||
$locked = $defaultpreferences->{$defaultlockedpreference};
|
||||
} else {
|
||||
// MDL-25114 They supplied an $eventdata->component $eventdata->name combination which doesn't
|
||||
// exist in the message_provider table (thus there is no default settings for them).
|
||||
$preferrormsg = "Could not load preference $defaultpreference. Make sure the component and name you supplied
|
||||
to message_send() are valid.";
|
||||
$preferrormsg = "Could not load preference $defaultlockedpreference.
|
||||
Make sure the component and name you supplied to message_send() are valid.";
|
||||
throw new coding_exception($preferrormsg);
|
||||
}
|
||||
|
||||
$enabledpreference = 'message_provider_'.$preferencebase . '_enabled';
|
||||
$forced = false;
|
||||
if ($locked && isset($defaultpreferences->{$enabledpreference})) {
|
||||
$forced = $defaultpreferences->{$enabledpreference};
|
||||
}
|
||||
|
||||
// Find out if user has configured this output.
|
||||
// Some processors cannot function without settings from the user.
|
||||
$userisconfigured = $processor->object->is_user_configured($recipient);
|
||||
|
||||
// DEBUG: notify if we are forcing unconfigured output.
|
||||
if ($permitted == 'forced' && !$userisconfigured) {
|
||||
if ($forced && !$userisconfigured) {
|
||||
debugging('Attempt to force message delivery to user who has "' . $processor->name .
|
||||
'" output unconfigured', DEBUG_NORMAL);
|
||||
}
|
||||
|
@ -257,13 +250,13 @@ class manager {
|
|||
// Populate the list of processors we will be using.
|
||||
if (!$eventdata->notification && $processor->object->force_process_messages()) {
|
||||
$processorlist[] = $processor->name;
|
||||
} else if ($permitted == 'forced' && $userisconfigured) {
|
||||
} else if ($forced && $userisconfigured) {
|
||||
// An admin is forcing users to use this message processor. Use this processor unconditionally.
|
||||
$processorlist[] = $processor->name;
|
||||
} else if ($permitted == 'permitted' && $userisconfigured && !$recipient->emailstop) {
|
||||
} else if (!$locked && $userisconfigured && !$recipient->emailstop) {
|
||||
// User has not disabled notifications.
|
||||
// See if user set any notification preferences, otherwise use site default ones.
|
||||
$userpreferencename = 'message_provider_' . $preferencebase . '_' . $userstate;
|
||||
$userpreferencename = 'message_provider_' . $preferencebase . '_enabled';
|
||||
if ($userpreference = get_user_preferences($userpreferencename, null, $recipient)) {
|
||||
if (in_array($processor->name, explode(',', $userpreference))) {
|
||||
$processorlist[] = $processor->name;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue