]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15748 get_user_access_sitewide() - reduce looking for perms in any context below...
authorstronk7 <stronk7>
Fri, 20 Mar 2009 12:10:47 +0000 (12:10 +0000)
committerstronk7 <stronk7>
Fri, 20 Mar 2009 12:10:47 +0000 (12:10 +0000)
Dramatic speed-up in sites with zillions of contexts and overrides. Credit goes to Samuli Karevaara.
Merged from 19_STABLE

lib/accesslib.php

index 121811b007d8cc9f3dad2ab52a80b7ecf720c360..6e5ccc7bd2397ed5ba1216dd78ac3cc68230bc1a 100755 (executable)
@@ -1314,7 +1314,8 @@ function get_user_access_sitewide($userid) {
               JOIN {role_capabilities} rco
                    ON (rco.roleid=ra.roleid AND rco.contextid=sctx.id)
              WHERE ra.userid = ?
-                   AND sctx.contextlevel <= ".CONTEXT_COURSE."
+               AND ctx.contextlevel <= ".CONTEXT_COURSECAT."
+               AND sctx.contextlevel <= ".CONTEXT_COURSE."
           ORDER BY sctx.depth, sctx.path, ra.roleid";
     $params = array($userid);
     $rs = $DB->get_recordset_sql($sql, $params);