From: moodler Date: Sat, 21 Oct 2006 14:53:47 +0000 (+0000) Subject: Merged some checks from stable X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=2176adf169a3ef0d53c3c5c2fc075121af9fd54a;p=moodle.git Merged some checks from stable --- diff --git a/lib/accesslib.php b/lib/accesslib.php index 6d823e658b..aa8735492d 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -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; } }