]> git.mjollnir.org Git - moodle.git/commitdiff
Merged some checks from stable
authormoodler <moodler>
Sat, 21 Oct 2006 14:53:47 +0000 (14:53 +0000)
committermoodler <moodler>
Sat, 21 Oct 2006 14:53:47 +0000 (14:53 +0000)
lib/accesslib.php

index 6d823e658b31bc39133c2d8b357a33132ad149ec..aa8735492d91c7f29998e4a448928d91a586084d 100755 (executable)
@@ -818,6 +818,14 @@ function check_enrolment_plugins(&$user) {
 function capability_prohibits($capability, $context, $sum='', $array='') {
     global $USER;
 
+    if (empty($context->id)) {
+        return false;
+    }
+
+    if (empty($capability)) {
+        return false;
+    }
+
     if ($sum < (CAP_PROHIBIT/2)) {
         // If this capability is set to prohibit.
         return true;
@@ -843,24 +851,26 @@ function capability_prohibits($capability, $context, $sum='', $array='') {
         break;
 
         case CONTEXT_PERSONAL:
-            $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
+            $parent = get_context_instance(CONTEXT_SYSTEM);
             return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_USER:
-            $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
+            $parent = get_context_instance(CONTEXT_SYSTEM);
             return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_COURSECAT:
             // Coursecat -> coursecat or site.
-            $coursecat = get_record('course_categories','id',$context->instanceid);
+            if (!$coursecat = get_record('course_categories','id',$context->instanceid)) {
+                return false;
+            }
             if (!empty($coursecat->parent)) {
                 // return parent value if exist.
                 $parent = get_context_instance(CONTEXT_COURSECAT, $coursecat->parent);
             } else {
                 // Return site value.
-                $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
+                $parent = get_context_instance(CONTEXT_SYSTEM);
             }
             return capability_prohibits($capability, $parent);
         break;
@@ -868,35 +878,43 @@ function capability_prohibits($capability, $context, $sum='', $array='') {
         case CONTEXT_COURSE:
             // 1 to 1 to course cat.
             // Find the course cat, and return its value.
-            $course = get_record('course','id',$context->instanceid);
+            if (!$course = get_record('course','id',$context->instanceid)) {
+                return false;
+            }
             $parent = get_context_instance(CONTEXT_COURSECAT, $course->category);
             return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_GROUP:
             // 1 to 1 to course.
-            $group = get_record('groups','id',$context->instanceid);
+            if (!$group = get_record('groups','id',$context->instanceid)) {
+                return false;
+            }
             $parent = get_context_instance(CONTEXT_COURSE, $group->courseid);
             return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_MODULE:
             // 1 to 1 to course.
-            $cm = get_record('course_modules','id',$context->instanceid);
+            if (!$cm = get_record('course_modules','id',$context->instanceid)) {
+                return false;
+            }
             $parent = get_context_instance(CONTEXT_COURSE, $cm->course);
             return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_BLOCK:
             // 1 to 1 to course.
-            $block = get_record('block_instance','id',$context->instanceid);
+            if (!$block = get_record('block_instance','id',$context->instanceid)) {
+                return false;
+            }
             $parent = get_context_instance(CONTEXT_COURSE, $block->pageid); // needs check
             return capability_prohibits($capability, $parent);
         break;
 
         default:
-            error ('This is an unknown context!');
-        return false;
+            print_error('unknowncontext');
+            return false;
     }
 }