Subversion Repositories web_pages

Rev

Rev 16 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 16 Rev 20
Line 52... Line 52...
52
     Reading from json file instead of csv
52
     Reading from json file instead of csv
53
     Removed dependency on exec and external commands
53
     Removed dependency on exec and external commands
54
     Added logging of successful logins
54
     Added logging of successful logins
55
     automatically generate router list from config file
55
     automatically generate router list from config file
56
     Added some error checking for missing qr code image file and ovpn file
56
     Added some error checking for missing qr code image file and ovpn file
-
 
57
   Version 1.3.0 RWR 2026-01-04
-
 
58
     Changed log file date format to YYYY-MM-DD for better sorting
-
 
59
     Moved log files to logs/ subdirectory, auto-creates if needed
-
 
60
     Added support for multiple OVPN files per user with separate download links
57
 
61
 
58
 */
62
 */
59
 
63
 
60
   define('VERSION', '1.2.0');
64
   define('VERSION', '1.3.0');
61
 
65
 
62
// this is the only variable you may need to change
66
// this is the only variable you may need to change
63
// everything else is in the configuration file
67
// everything else is in the configuration file
64
$configFile = __DIR__ . '/users.json';
68
$configFile = __DIR__ . '/users.json';
65
 
69
 
Line 85... Line 89...
85
            $data = $configData[$router]['users'][$username];
89
            $data = $configData[$router]['users'][$username];
86
            if (password_verify($password, $data['password'])) {
90
            if (password_verify($password, $data['password'])) {
87
                $isValidUser = true;
91
                $isValidUser = true;
88
                $code = $data['otp_seed'];
92
                $code = $data['otp_seed'];
89
                $imageFileName = $data['qrFile'];
93
                $imageFileName = $data['qrFile'];
-
 
94
                $ovpnFileName = is_array($data['ovpnFile']) ? $data['ovpnFile'] : [$data['ovpnFile']];
-
 
95
                if (!is_dir('./logs')) {
90
                $ovpnFileName = $data['ovpnFile'];
96
                    mkdir('./logs', 0755, true);
-
 
97
                }
91
                $log = date("Y-m-d H:i:s") . "\t" . $_SERVER['REMOTE_ADDR'] . "\t" .
98
                $log = date("Y-m-d H:i:s") . "\t" . $_SERVER['REMOTE_ADDR'] . "\t" .
92
                "Success\t" . $username."\t" .PHP_EOL;
99
                "Success\t" . $username."\t" .PHP_EOL;
93
                file_put_contents('./log_'.date("j.n.Y").'.log', $log, FILE_APPEND);
100
                file_put_contents('./logs/log_'.date("Y-m-d").'.log', $log, FILE_APPEND);
94
            }
101
            }
95
        }
102
        }
96
    } else {
103
    } else {
97
        print '<h1>Could not open the configuration file.</h1>';
104
        print '<h1>Could not open the configuration file.</h1>';
98
    }
105
    }
Line 129... Line 136...
129
               } else {
136
               } else {
130
                  // all good
137
                  // all good
131
                  print "<img src='$imageFileName' alt='$code'>";
138
                  print "<img src='$imageFileName' alt='$code'>";
132
                  print "<br />Your code for $router is<br /><b>$code</b>";
139
                  print "<br />Your code for $router is<br /><b>$code</b>";
133
               }
140
               }
134
               if (empty($ovpnFileName)) {
141
               if (empty($ovpnFileName) || (is_array($ovpnFileName) && count($ovpnFileName) == 0)) {
135
                  print "<br />No OpenVPN configuration file available";
142
                  print "<br />No OpenVPN configuration file available";
136
               } else {
143
               } else {
-
 
144
                  print "<br />";
-
 
145
                  if (count($ovpnFileName) == 1) {
137
                  print "<br /><a href='$ovpnFileName' download>Download your OpenVPN Config File</a>";
146
                     print "<a href='$ovpnFileName[0]' download>Download your OpenVPN Config File</a>";
-
 
147
                  } else {
-
 
148
                     print "Download OpenVPN Config Files:<br />";
-
 
149
                     foreach ($ovpnFileName as $index => $file) {
-
 
150
                        $fileName = basename($file);
-
 
151
                        print "<a href='$file' download>$fileName</a><br />";
-
 
152
                     }
-
 
153
                  }
138
               }
154
               }
139
            } else {
155
            } else {
140
               print "<h1>Password wrong, or invalid user $username for router $router</h1>";
156
               print "<h1>Password wrong, or invalid user $username for router $router</h1>";
141
            }
157
            }
142
         }
158
         }