From 8521d83affb1158cf4658b9f8a4b608df7b02808 Mon Sep 17 00:00:00 2001 From: skodak Date: Wed, 20 Sep 2006 06:24:55 +0000 Subject: [PATCH] role_context_capabilities should handle current context too and role override simply use parent context --- admin/roles/override.php | 10 +++++++++- lib/accesslib.php | 11 +++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/admin/roles/override.php b/admin/roles/override.php index 26e1bf6cdd..ec1227309d 100755 --- a/admin/roles/override.php +++ b/admin/roles/override.php @@ -133,7 +133,15 @@ choose_from_menu ($overridableroles, 'roleid', $roleid, get_string('listallroles', 'role'), $script='rolesform.submit()'); echo ''; - $r_caps = role_context_capabilities($roleid, $context); + $parentcontexts = get_parent_contexts($context); + if (!empty($parentcontexts)) { + $parentcontext = array_shift($parentcontexts); + $parentcontext = get_context_instance_by_id($parentcontext); + } else { + $parentcontext = $context; // site level in override?? + } + + $r_caps = role_context_capabilities($roleid, $parentcontext); $localoverrides = get_records_select('role_capabilities', "roleid = $roleid AND contextid = $context->id", '', 'capability, permission, id'); diff --git a/lib/accesslib.php b/lib/accesslib.php index dfb7374a41..afb15da003 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -1971,13 +1971,8 @@ function fetch_context_capabilities($context) { function role_context_capabilities($roleid, $context, $cap='') { global $CFG; - $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID); - if ($sitecontext->id == $context->id) { - $contexts = array($sitecontext->id); - } else { - // first of all, figure out all parental contexts - $contexts = array_reverse(get_parent_contexts($context)); - } + $contexts = get_parent_contexts($context); + $contexts[] = $context->id; $contexts = '('.implode(',', $contexts).')'; if ($cap) { @@ -2579,4 +2574,4 @@ function get_user_capability_course($capability, $userid='') { } return $usercourses; } -?> +?> \ No newline at end of file -- 2.39.5