auth: admin subpermission check for edit pages
[minimedit.git] / auth.inc.php
index a792ef6838e13383a6b130facde423ad37a8c0d5..7ece6350219902345e504b9d253156200f2d982d 100644 (file)
@@ -40,7 +40,14 @@ class User
        function admin($permission = NULL)
        {
                if (isset($permission)) {
-                       return $this->admin && isset($this->admin[$permission]);  # check level
+                       if (!$this->admin) {
+                               return FALSE;  # empty results
+                       }
+                       @list ($rootlevel, $sublevel) = explode(' ', $permission);
+                       if ($sublevel and isset($this->admin[$rootlevel])) {
+                               return TRUE;  # root match
+                       }
+                       return isset($this->admin[$permission]);  # check level
                }
                if (!@file_exists("{$this->dir}/.admin")) {
                        return FALSE;  # not an admin