From: skodak Date: Wed, 16 Jan 2008 17:24:08 +0000 (+0000) Subject: tweak has_capability() debug mode to add only one query per page for cap name verific... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=588cd516e19840fc58612dced865136653b7f8eb;p=moodle.git tweak has_capability() debug mode to add only one query per page for cap name verification; merged from MOODLE_19_STABLE --- diff --git a/lib/accesslib.php b/lib/accesslib.php index 7dec6b4c03..b2a061336b 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -329,10 +329,22 @@ function has_capability($capability, $context, $userid=NULL, $doanything=true) { /// Some sanity checks if (debugging('',DEBUG_DEVELOPER)) { - if (!record_exists('capabilities', 'name', $capability)) { - debugging('Capability "'.$capability.'" was not found! This should be fixed in code.'); + static $capsnames = null; // one request per page only + + if (is_null($capsnames)) { + if ($caps = get_records('capabilities', '', '', '', 'id, name')) { + $capsnames = array(); + foreach ($caps as $cap) { + $capsnames[$cap->name] = true; + } + } + } + if ($capsnames) { // ignore if can not fetch caps + if (!isset($capsnames[$capability])) { + debugging('Capability "'.$capability.'" was not found! This should be fixed in code.'); + } } - if ($doanything != true and $doanything != false) { + if (!is_bool($doanything)) { debugging('Capability parameter "doanything" is wierd ("'.$doanything.'"). This should be fixed in code.'); } }