]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-17502 accesslib: added warning if incorrect parameters supplied to has_all_capabi...
authorskodak <skodak>
Tue, 9 Dec 2008 16:25:38 +0000 (16:25 +0000)
committerskodak <skodak>
Tue, 9 Dec 2008 16:25:38 +0000 (16:25 +0000)
course/lib.php
lib/accesslib.php

index f07a3b98a3fbf037196089cca3a5ee2fb0a8f108..3464f65e91fe6d6257e9179a980fe740754c80bb 100644 (file)
@@ -1789,11 +1789,15 @@ function make_categories_list(&$list, &$parents, $requiredcapability = '',
         }
 
         // Add this category to $list, if the permissions check out.
-        if ($requiredcapability) {
-            ensure_context_subobj_present($category, CONTEXT_COURSECAT);
-        }
-        if (!$requiredcapability || has_all_capabilities($requiredcapability, $category->context)) {
+        if (empty($requiredcapability)) {
             $list[$category->id] = $path;
+
+        } else {
+            ensure_context_subobj_present($category, CONTEXT_COURSECAT);
+            $requiredcapability = (array)$requiredcapability;
+            if (has_all_capabilities($requiredcapability, $category->context)) {
+                $list[$category->id] = $path;
+            }
         }
     }
 
index 1865f6e5a49db21ccd2d0dcca00d33b2918fbb37..3603875fb49781f3b35187ec20d9af6f2ac15b67 100755 (executable)
@@ -512,6 +512,10 @@ function has_any_capability($capabilities, $context, $userid=NULL, $doanything=t
  * @return bool
  */
 function has_all_capabilities($capabilities, $context, $userid=NULL, $doanything=true) {
+    if (!is_array($capabilities)) {
+        debugging('Incorrect $capabilities parameter in has_all_capabilities() call - must be an array');
+        return false;
+    }
     foreach ($capabilities as $capability) {
         if (!has_capability($capability, $context, $userid, $doanything)) {
             return false;