login: save user access details to last.log
[minimedit.git] / auth.inc.php
1 <?php
2 function login($inuser, $inpass = NULL)
3 {
4         if (empty($inuser)) return;
5         if (!isset($inpass)) {
6                 @list ($inuser, $inauth) = explode(':', $inuser, 2);
7         }
8
9         # find password data by user name
10         $userdir = 'login/'.strtolower($inuser);
11         $pwfile = "$userdir/.passwd";
12         if (!file_exists($pwfile)) return;
13         $usertest = trim(file_get_contents($pwfile));
14         if (!$usertest) return;
15
16         # verify password
17         $authhash = md5($usertest);
18         if (isset($inpass)) {
19                 if (!password_verify($inpass, $usertest)) return;
20         }
21         else {
22                 if ($inauth !== $authhash) return;
23         }
24
25         if (function_exists('apache_note')) apache_note('user', $inuser);
26
27         if ($log = @fopen("$userdir/last.log", 'w')) {
28                 fwrite($log, "{$_SERVER['REMOTE_ADDR']} {$_SERVER['HTTP_USER_AGENT']}\n");
29         }
30
31         return [
32                 'name'  => $inuser,
33                 'admin' => file_exists("$userdir/.admin"),
34                 'auth'  => "$inuser:$authhash",
35         ];
36 }
37
38 if (isset($_COOKIE['login'])) {
39         global $User;
40         $User = login($_COOKIE['login']);
41 }
42