MDL-45895 user: Re-organise orphans nodes on the preferences page

Part of MDL-45774
This commit is contained in:
Frederic Massart
2015-04-10 17:17:06 +08:00
committed by Adrian Greeve
parent 0e8418a8de
commit 36ffc1511c
2 changed files with 9 additions and 6 deletions
+8 -6
View File
@@ -4221,18 +4221,20 @@ class settings_navigation extends navigation_node {
$userauthplugin = get_auth_plugin($user->auth);
}
$useraccount = $usersetting->add(get_string('useraccount'), null, self::TYPE_CONTAINER, null, 'useraccount');
// Add the profile edit link
if (isloggedin() && !isguestuser($user) && !is_mnet_remote_user($user)) {
if (($currentuser || is_siteadmin($USER) || !is_siteadmin($user)) && has_capability('moodle/user:update', $systemcontext)) {
$url = new moodle_url('/user/editadvanced.php', array('id'=>$user->id, 'course'=>$course->id));
$usersetting->add(get_string('editmyprofile'), $url, self::TYPE_SETTING);
$useraccount->add(get_string('editmyprofile'), $url, self::TYPE_SETTING);
} else if ((has_capability('moodle/user:editprofile', $usercontext) && !is_siteadmin($user)) || ($currentuser && has_capability('moodle/user:editownprofile', $systemcontext))) {
if ($userauthplugin && $userauthplugin->can_edit_profile()) {
$url = $userauthplugin->edit_profile_url();
if (empty($url)) {
$url = new moodle_url('/user/edit.php', array('id'=>$user->id, 'course'=>$course->id));
}
$usersetting->add(get_string('editmyprofile'), $url, self::TYPE_SETTING);
$useraccount->add(get_string('editmyprofile'), $url, self::TYPE_SETTING);
}
}
}
@@ -4243,7 +4245,7 @@ class settings_navigation extends navigation_node {
if (empty($passwordchangeurl)) {
$passwordchangeurl = new moodle_url('/login/change_password.php', array('id'=>$course->id));
}
$usersetting->add(get_string("changepassword"), $passwordchangeurl, self::TYPE_SETTING, null, 'changepassword');
$useraccount->add(get_string("changepassword"), $passwordchangeurl, self::TYPE_SETTING, null, 'changepassword');
}
// View the roles settings
@@ -4294,13 +4296,13 @@ class settings_navigation extends navigation_node {
// Security keys
if ($currentuser && $enablemanagetokens) {
$url = new moodle_url('/user/managetoken.php', array('sesskey'=>sesskey()));
$usersetting->add(get_string('securitykeys', 'webservice'), $url, self::TYPE_SETTING);
$useraccount->add(get_string('securitykeys', 'webservice'), $url, self::TYPE_SETTING);
}
// 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));
$usersetting->add(get_string('messaging', 'message'), $url, self::TYPE_SETTING);
$useraccount->add(get_string('messaging', 'message'), $url, self::TYPE_SETTING);
}
// Blogs
@@ -4335,7 +4337,7 @@ class settings_navigation extends navigation_node {
// Login as ...
if (!$user->deleted and !$currentuser && !\core\session\manager::is_loggedinas() && has_capability('moodle/user:loginas', $coursecontext) && !is_siteadmin($user->id)) {
$url = new moodle_url('/course/loginas.php', array('id'=>$course->id, 'user'=>$user->id, 'sesskey'=>sesskey()));
$usersetting->add(get_string('loginas'), $url, self::TYPE_SETTING);
$useraccount->add(get_string('loginas'), $url, self::TYPE_SETTING);
}
// Let admin tools hook into user settings navigation.