X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/6f7977b1751e50e24f1302ef8630a7726182fe53..fb2049da3dfd9814498bb2ab0cb673b6260f4bc5:/auth.inc.php diff --git a/auth.inc.php b/auth.inc.php index 631bf8b..52cd4c1 100644 --- a/auth.inc.php +++ b/auth.inc.php @@ -5,6 +5,9 @@ class User { function __construct($dir) { + if (!file_exists($dir)) { + throw new Exception("Gebruiker niet gevonden in $dir"); + } $this->dir = $dir; $this->login = basename($dir); } @@ -16,7 +19,7 @@ class User function rawname() { - return @file_get_contents("{$this->dir}/name.txt"); + return rtrim(@file_get_contents("{$this->dir}/name.txt")); } function name() @@ -24,6 +27,11 @@ class User return htmlspecialchars(implode(' & ', explode("\n", $this->rawname))); } + function html() + { + return $this->name ?: $this->login; + } + function admin() { return @file_exists("{$this->dir}/.admin"); @@ -33,6 +41,14 @@ class User { return @filemtime("{$this->dir}/last.log"); } + + function logclient() + { + if ($log = @fopen("{$this->dir}/last.log", 'w')) { + $line = $_SERVER['REMOTE_ADDR'].' '.$_SERVER['HTTP_USER_AGENT']; + fwrite($log, $line."\n"); + } + } } function login_password_verify($input, $test) @@ -47,7 +63,7 @@ function login_password_verify($input, $test) function login_setcookie() { global $User; - return setcookie('login', $User['auth'], 0, '/'); + return setcookie('login', $User->auth, 0, '/'); } function login($inuser, $inpass = NULL) @@ -75,17 +91,11 @@ function login($inuser, $inpass = NULL) if (function_exists('apache_note')) apache_note('user', $inuser); - if ($log = @fopen("$userdir/last.log", 'w')) { - fwrite($log, "{$_SERVER['REMOTE_ADDR']} {$_SERVER['HTTP_USER_AGENT']}\n"); - } - - return [ - 'name' => $inuser, - 'dir' => $userdir, - 'admin' => file_exists("$userdir/.admin"), - 'pass' => $usertest, - 'auth' => "$inuser:$authhash", - ]; + $user = new User($userdir); + $user->logclient(); + $user->pass = $usertest; + $user->auth = "$inuser:$authhash"; + return $user; } if (isset($_COOKIE['login'])) {