login/edit: allow setup form for missing users
[minimedit.git] / auth.inc.php
index 4d9b29e2a297f00e05184cdb954e54c802d1c958..a792ef6838e13383a6b130facde423ad37a8c0d5 100644 (file)
@@ -3,9 +3,9 @@ date_default_timezone_set('Europe/Amsterdam');
 
 class User
 {
-       function __construct($dir)
+       function __construct($dir, $existing = TRUE)
        {
-               if (!file_exists($dir)) {
+               if (!file_exists($dir) and $existing) {
                        throw new Exception("Gebruiker niet gevonden in $dir");
                }
                $this->dir = $dir;
@@ -37,9 +37,15 @@ class User
                return rtrim(@file_get_contents("{$this->dir}/email.txt"));
        }
 
-       function admin()
+       function admin($permission = NULL)
        {
-               return @file_exists("{$this->dir}/.admin");
+               if (isset($permission)) {
+                       return $this->admin && isset($this->admin[$permission]);  # check level
+               }
+               if (!@file_exists("{$this->dir}/.admin")) {
+                       return FALSE;  # not an admin
+               }
+               return array_fill_keys(explode("\n", file_get_contents("{$this->dir}/.admin")), TRUE);
        }
 
        function seen()