]> git.mjollnir.org Git - moodle.git/commitdiff
role_context_capabilities should handle current context too and role override simply...
authorskodak <skodak>
Wed, 20 Sep 2006 06:24:55 +0000 (06:24 +0000)
committerskodak <skodak>
Wed, 20 Sep 2006 06:24:55 +0000 (06:24 +0000)
admin/roles/override.php
lib/accesslib.php

index 26e1bf6cdde7db3ba9ef4b229aafd2642283c53d..ec1227309d18b326ac658c3dbfe620ffcd9d5c11 100755 (executable)
         choose_from_menu ($overridableroles, 'roleid', $roleid, get_string('listallroles', 'role'), $script='rolesform.submit()');
         echo '</div></form>';
 
-        $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');
index dfb7374a41d729cb56d54cd6e34d6fd31d414ae7..afb15da003d738f658dea31a612466091f0b4a9f 100755 (executable)
@@ -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