From 7293b3c6bdf52b5c6170f9dd643090bba9c54fe4 Mon Sep 17 00:00:00 2001 From: martinlanghoff Date: Wed, 19 Sep 2007 07:16:56 +0000 Subject: [PATCH] accesslib: drop rdef mangling part two We had quite a bit of leftover rdef and ra mangling. Be more thorough and clear it up. While at it, make load_user_accessdata() and load_all_capabilities() more consistent. --- lib/accesslib.php | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/lib/accesslib.php b/lib/accesslib.php index 31b9eda902..416e7c9a50 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -736,8 +736,6 @@ function aggr_roles_fad($context, $ad) { $path = $matches[1]; array_unshift($contexts, $path); } - // Add a "default" context for the "default role" - array_unshift($contexts,"$path:def"); $cc = count($contexts); @@ -1595,14 +1593,14 @@ function load_user_accessdata($userid) { if (!isset($ACCESS)) { $ACCESS = array(); } + $base = '/'.SYSCONTEXTID; $ad = get_user_access_sitewide($userid); - get_role_access($CFG->defaultuserroleid, $ad); // - // provide "default role" (set 'dr'!) + // provide "default role" & set 'dr' // - $base = '/'.SYSCONTEXTID; + $ad = get_role_access($CFG->defaultuserroleid, $ad); if (!isset($ad['ra'][$base])) { $ad['ra'][$base] = array($CFG->defaultuserroleid); } else { @@ -1633,32 +1631,29 @@ function load_all_capabilities() { // Put the ghost enrolment in place... $USER->access['ra'][$base] = array($guest->id); + } else if (isloggedin()) { - $USER->access = get_user_access_sitewide($USER->id); - $USER->access = get_role_access($CFG->defaultuserroleid, $USER->access); - // define a "default" enrolment - $USER->access['ra']["$base:def"] = array($CFG->defaultuserroleid); - if ($CFG->defaultuserroleid === $CFG->guestroleid ) { - if (isset($USER->access['rdef']["$base:{$CFG->guestroleid}"]['moodle/legacy:guest'])) { - unset($USER->access['rdef']["$base:{$CFG->guestroleid}"]['moodle/legacy:guest']); - } - if (isset($USER->access['rdef']["$base:{$CFG->guestroleid}"]['moodle/course:view'])) { - unset($USER->access['rdef']["$base:{$CFG->guestroleid}"]['moodle/course:view']); - } - } + $ad = get_user_access_sitewide($USER->id); - if (isset($USER->capabilities)) { - $USER->capabilities = merge_role_caps($USER->capabilities, $defcaps); + // + // provide "default role" & set 'dr' + // + $ad = get_role_access($CFG->defaultuserroleid, $ad); + if (!isset($ad['ra'][$base])) { + $ad['ra'][$base] = array($CFG->defaultuserroleid); } else { - $USER->capabilities = $defcaps; + array_push($ad['ra'][$base], $CFG->defaultuserroleid); } + $ad['dr'] = $CFG->defaultuserroleid; + + $USER->access = $ad; } else { if ($roleid = get_notloggedin_roleid()) { - $USER->access = get_role_access(get_notloggedin_roleid()); - $USER->access['ra']["$base:def"] = array($roleid); + $USER->access = get_role_access($roleid); + $USER->access['ra'][$base] = array($roleid); } } $USER->access['time'] = time(); -- 2.39.5