nieuws/feed: atom content type and link attributes
[minimedit.git] / auth.inc.php
index fd11b1353a1dfe1feaa82dc81bad675cc714a9ea..a2db9f31f1b385b8284c5a97360ed6edeb35abbb 100644 (file)
@@ -1,4 +1,43 @@
 <?php
+date_default_timezone_set('Europe/Amsterdam');
+
+class User
+{
+       function __construct($dir)
+       {
+               if (!file_exists($dir)) {
+                       throw new Exception("Gebruiker niet gevonden in $dir");
+               }
+               $this->dir = $dir;
+               $this->login = basename($dir);
+       }
+
+       function __get($col)
+       {
+               return $this->$col = $this->$col();  # run method and cache
+       }
+
+       function rawname()
+       {
+               return @file_get_contents("{$this->dir}/name.txt");
+       }
+
+       function name()
+       {
+               return htmlspecialchars(implode(' & ', explode("\n", $this->rawname)));
+       }
+
+       function admin()
+       {
+               return @file_exists("{$this->dir}/.admin");
+       }
+
+       function seen()
+       {
+               return @filemtime("{$this->dir}/last.log");
+       }
+}
+
 function login_password_verify($input, $test)
 {
        if (substr($test, 0, 1) != '$') {
@@ -22,7 +61,7 @@ function login($inuser, $inpass = NULL)
        }
 
        # find password data by user name
-       $userdir = 'login/'.strtolower($inuser);
+       $userdir = 'profile/'.preg_replace('/[^a-z0-9]+/', '-', strtolower($inuser));
        $pwfile = "$userdir/.passwd";
        if (!file_exists($pwfile)) return;
        $usertest = trim(file_get_contents($pwfile));
@@ -45,7 +84,9 @@ function login($inuser, $inpass = NULL)
 
        return [
                'name'  => $inuser,
+               'dir'   => $userdir,
                'admin' => file_exists("$userdir/.admin"),
+               'pass'  => $usertest,
                'auth'  => "$inuser:$authhash",
        ];
 }