From 661dd2cf611ec6cdc6c0d771427e4fed28fcb17c Mon Sep 17 00:00:00 2001 From: Ruslan Kabalin Date: Tue, 5 Jul 2011 15:23:37 +0100 Subject: [PATCH] MDL-28186 messaging: Fix "Enable messagning setting" infuence on the menus "Enable messaging system" (Site administration > Advanced features) is supposed to control messaging between site users only, thus it should not remove user messging preferences menu item. However, it may remove instant messging preferences from providers list for the user. Signed-off-by: Ruslan Kabalin --- lib/messagelib.php | 6 +++++- lib/navigationlib.php | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/messagelib.php b/lib/messagelib.php index 5fbc20b2bc5..d6a6c975d56 100644 --- a/lib/messagelib.php +++ b/lib/messagelib.php @@ -373,7 +373,7 @@ function message_get_my_providers() { * @return array of message providers */ function message_get_providers_for_user($userid) { - global $DB; + global $DB, $CFG; $systemcontext = get_context_instance(CONTEXT_SYSTEM); @@ -386,6 +386,10 @@ function message_get_providers_for_user($userid) { unset($providers[$providerid]); // Not allowed to see this } } + // Ensure user is not allowed to configure instantmessage if it is globally disabled. + if (!$CFG->messaging && $provider->name == 'instantmessage') { + unset($providers[$providerid]); + } } return $providers; diff --git a/lib/navigationlib.php b/lib/navigationlib.php index 1f70476a210..52011cc3b90 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -3673,8 +3673,7 @@ class settings_navigation extends navigation_node { // Messaging if (($currentuser && has_capability('moodle/user:editownmessageprofile', $systemcontext)) || (!isguestuser($user) && has_capability('moodle/user:editmessageprofile', $usercontext) && !is_primary_admin($user->id))) { $url = new moodle_url('/message/edit.php', array('id'=>$user->id, 'course'=>$course->id)); - // Hide the node if messaging disabled - $usersetting->add(get_string('editmymessage', 'message'), $url, self::TYPE_SETTING)->display = !empty($CFG->messaging); + $usersetting->add(get_string('editmymessage', 'message'), $url, self::TYPE_SETTING); } // Blogs