From 8309caa64334479695258e0f0b82071ce0788592 Mon Sep 17 00:00:00 2001 From: Frederic Massart Date: Wed, 25 Feb 2015 16:23:21 +0100 Subject: [PATCH] MDL-45902 navigation: Moving repositories to the preferences Part of MDL-45774 --- lang/en/repository.php | 1 + lib/navigationlib.php | 34 ++++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lang/en/repository.php b/lang/en/repository.php index cc3eb9bf9c715..c8e7771a594e4 100644 --- a/lang/en/repository.php +++ b/lang/en/repository.php @@ -161,6 +161,7 @@ $string['makefilelink'] = 'Link to the file directly'; $string['makefilereference'] = 'Create an alias/shortcut to the file'; $string['manage'] = 'Manage repositories'; +$string['manageinstances'] = 'Manage instances'; $string['manageurl'] = 'Manage'; $string['manageuserrepository'] = 'Manage individual repository'; $string['moving'] = 'Moving'; diff --git a/lib/navigationlib.php b/lib/navigationlib.php index fac67c61896e8..921fe305cb592 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -2285,20 +2285,10 @@ protected function load_for_user($user=null, $forceforcontext=false) { // If the user is the current user add the repositories for the current user $hiddenfields = array_flip(explode(',', $CFG->hiddenuserfields)); - if ($iscurrentuser) { - if (!$this->cache->cached('contexthasrepos'.$usercontext->id)) { - require_once($CFG->dirroot . '/repository/lib.php'); - $editabletypes = repository::get_editable_types($usercontext); - $haseditabletypes = !empty($editabletypes); - unset($editabletypes); - $this->cache->set('contexthasrepos'.$usercontext->id, $haseditabletypes); - } else { - $haseditabletypes = $this->cache->{'contexthasrepos'.$usercontext->id}; - } - if ($haseditabletypes) { - $usernode->add(get_string('repositories', 'repository'), new moodle_url('/repository/manage_instances.php', array('contextid' => $usercontext->id))); - } - } else if ($course->id == $SITE->id && has_capability('moodle/user:viewdetails', $usercontext) && (!in_array('mycourses', $hiddenfields) || has_capability('moodle/user:viewhiddendetails', $coursecontext))) { + if (!$iscurrentuser && + $course->id == $SITE->id && + has_capability('moodle/user:viewdetails', $usercontext) && + (!in_array('mycourses', $hiddenfields) || has_capability('moodle/user:viewhiddendetails', $coursecontext))) { // Add view grade report is permitted $reports = core_component::get_plugin_list('gradereport'); @@ -4273,6 +4263,22 @@ protected function generate_user_settings($courseid, $userid, $gstitle='usercurr $roles->add(get_string('checkpermissions', 'role'), $url, self::TYPE_SETTING); } + // Repositories. + if (!$this->cache->cached('contexthasrepos'.$usercontext->id)) { + require_once($CFG->dirroot . '/repository/lib.php'); + $editabletypes = repository::get_editable_types($usercontext); + $haseditabletypes = !empty($editabletypes); + unset($editabletypes); + $this->cache->set('contexthasrepos'.$usercontext->id, $haseditabletypes); + } else { + $haseditabletypes = $this->cache->{'contexthasrepos'.$usercontext->id}; + } + if ($haseditabletypes) { + $repositories = $usersetting->add(get_string('repositories', 'repository'), null, self::TYPE_SETTING); + $repositories->add(get_string('manageinstances', 'repository'), new moodle_url('/repository/manage_instances.php', + array('contextid' => $usercontext->id))); + } + // Portfolio if ($currentuser && !empty($CFG->enableportfolios) && has_capability('moodle/portfolio:export', $systemcontext)) { require_once($CFG->libdir . '/portfoliolib.php');