messaging MDL-23223 Fixed navigation link being added when messaging disabled

This commit is contained in:
Sam Hemelryk
2010-07-13 02:35:31 +00:00
parent 315f6d8eab
commit 5ac851fba1
3 changed files with 31 additions and 25 deletions
+17 -11
View File
@@ -1479,10 +1479,10 @@ class global_navigation extends navigation_node {
}
// Add a branch for the current user
$usernode = $usersnode->add(fullname($user, true), null, self::TYPE_USER, null, $user->id);
}
if ($this->page->context->contextlevel == CONTEXT_USER && $user->id == $this->page->context->instanceid) {
$usernode->force_open();
if ($this->page->context->contextlevel == CONTEXT_USER && $user->id == $this->page->context->instanceid) {
$usernode->make_active();
}
}
// If the user is the current user or has permission to view the details of the requested
@@ -1521,12 +1521,14 @@ class global_navigation extends navigation_node {
}
}
$messageargs = null;
if ($USER->id!=$user->id) {
$messageargs = array('id'=>$user->id);
if (!empty($CFG->messaging)) {
$messageargs = null;
if ($USER->id!=$user->id) {
$messageargs = array('id'=>$user->id);
}
$url = new moodle_url('/message/index.php',$messageargs);
$usernode->add(get_string('messages', 'message'), $url, self::TYPE_SETTING, null, 'messages');
}
$url = new moodle_url('/message/index.php',$messageargs);
$usernode->add(get_string('messages', 'message'), $url, self::TYPE_SETTING, null, 'messages');
// TODO: Private file capability check
if ($iscurrentuser) {
@@ -3051,6 +3053,10 @@ class settings_navigation extends navigation_node {
// Add a user setting branch
$usersetting = $this->add(get_string($gstitle, 'moodle', $fullname), null, self::TYPE_CONTAINER, null, $key);
$usersetting->id = 'usersettings';
if ($this->page->context->contextlevel == CONTEXT_USER && $this->page->context->instanceid == $user->id) {
// Automatically start by making it active
$usersetting->make_active();
}
// Check if the user has been deleted
if ($user->deleted) {
@@ -3184,10 +3190,10 @@ class settings_navigation extends navigation_node {
}
// Messaging
// TODO this is adding itself to the messaging settings for other people based on one's own setting
if (has_capability('moodle/user:editownmessageprofile', $systemcontext)) {
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));
$usersetting->add(get_string('editmymessage', 'message'), $url, self::TYPE_SETTING);
// Hide the node if messaging disabled
$usersetting->add(get_string('editmymessage', 'message'), $url, self::TYPE_SETTING)->display = !empty($CFG->messaging);
}
// Blogs