]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-11454 - hard-coded mdl_ prefix. Also, wrong logic in is_siteadmin in accesslib...
authortjhunt <tjhunt>
Wed, 26 Sep 2007 09:40:28 +0000 (09:40 +0000)
committertjhunt <tjhunt>
Wed, 26 Sep 2007 09:40:28 +0000 (09:40 +0000)
lib/accesslib.php

index ae9228c67d624d9f02daf5d71e04f2fe8512ac33..896748889796c6d1d37ae4e2c23f7c115b31a96c 100755 (executable)
@@ -475,19 +475,19 @@ function has_capability($capability, $context=NULL, $userid=NULL, $doanything=tr
 function is_siteadmin($userid) {
     global $CFG;
 
-    $sql = "SELECT COUNT(u.id)
-            FROM mdl_user u
-            JOIN mdl_role_assignments ra
-              ON ra.userid=u.id
-            JOIN mdl_context ctx 
-              ON ctx.id=ra.contextid
-            JOIN mdl_role_capabilities rc
-              ON (ra.roleid=rc.roleid AND rc.contextid=ctx.id)
+    $sql = "SELECT SUM(rc.permission)
+            FROM " . $CFG->prefix . "role_capabilities rc
+            JOIN " . $CFG->prefix . "context ctx 
+              ON ctx.id=rc.contextid
+            JOIN " . $CFG->prefix . "role_assignments ra
+              ON ra.roleid=rc.roleid AND ra.contextid=ctx.id
             WHERE ctx.contextlevel=10
+              AND ra.userid={$userid}
               AND rc.capability IN ('moodle/site:config', 'moodle/legacy:admin', 'moodle/site:doanything')       
-              AND u.id={$userid}";
+            GROUP BY rc.capability
+            HAVING SUM(rc.permission) > 0";
 
-    $isadmin = (get_field_sql($sql) > 0);
+    $isadmin = record_exists_sql($sql);
     return $isadmin;
 }