mirror of
https://github.com/RaspAP/raspap-webgui.git
synced 2024-11-24 00:20:23 +00:00
Implement PSR-4 compliant class autoloader
This commit is contained in:
parent
93166171db
commit
c2d740ef44
13 changed files with 112 additions and 76 deletions
|
@ -5,7 +5,7 @@ require_once 'includes/status_messages.php';
|
|||
function DisplayAuthConfig($username)
|
||||
{
|
||||
$status = new StatusMessages();
|
||||
$auth = new \RaspAP\Authenticate\HTTPAuth;
|
||||
$auth = new \RaspAP\Auth\HTTPAuth;
|
||||
$config = $auth->getAuthConfig();
|
||||
$password = $config['admin_pass'];
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ if (RASPI_AUTH_ENABLED) {
|
|||
$user = $_SERVER['PHP_AUTH_USER'] ?? '';
|
||||
$pass = $_SERVER['PHP_AUTH_PW'] ?? '';
|
||||
|
||||
$auth = new \RaspAP\Authenticate\HTTPAuth;
|
||||
$auth = new \RaspAP\Auth\HTTPAuth;
|
||||
|
||||
if (!$auth->isLogged()) {
|
||||
if ($auth->login($user, $pass)) {
|
||||
|
|
41
includes/autoload.php
Executable file
41
includes/autoload.php
Executable file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
/**
|
||||
* PSR-4 compliant class autoloader
|
||||
*
|
||||
* @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md
|
||||
* @link https://www.php.net/manual/en/function.spl-autoload-register.php
|
||||
* @param string $class fully-qualified class name
|
||||
* @return void
|
||||
*/
|
||||
spl_autoload_register(function ($class) {
|
||||
|
||||
// project-specific namespace prefix
|
||||
$prefix = '';
|
||||
|
||||
// base directory for the namespace prefix
|
||||
$base_dir = 'src/';
|
||||
|
||||
// normalize the base directory with a trailing separator
|
||||
$base_dir = rtrim($base_dir, DIRECTORY_SEPARATOR) . '/';
|
||||
|
||||
// does the class use the namespace prefix?
|
||||
$len = strlen($prefix);
|
||||
if (strncmp($prefix, $class, $len) !== 0) {
|
||||
// no, move to the next registered autoloader
|
||||
return;
|
||||
}
|
||||
|
||||
// get the relative class name
|
||||
$relative_class = substr($class, $len);
|
||||
|
||||
// replace the namespace prefix with the base directory, replace namespace
|
||||
// separators with directory separators in the relative class name, append
|
||||
// with .php
|
||||
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
|
||||
|
||||
// if the file exists, require it
|
||||
if (file_exists($file)) {
|
||||
require $file;
|
||||
}
|
||||
});
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
<?php
|
||||
|
||||
require_once 'status_messages.php';
|
||||
require_once 'app/lib/system.php';
|
||||
require_once 'includes/wifi_functions.php';
|
||||
require_once 'includes/config.php';
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
require_once 'includes/status_messages.php';
|
||||
require_once 'includes/config.php';
|
||||
require_once 'includes/wifi_functions.php';
|
||||
require_once 'app/lib/uploader.php';
|
||||
|
||||
getWifiInterface();
|
||||
|
||||
|
@ -109,7 +108,7 @@ function SaveOpenVPNConfig($status, $file, $authUser, $authPassword)
|
|||
throw new RuntimeException('Invalid parameters');
|
||||
}
|
||||
|
||||
$upload = \RaspAP\Uploader\Upload::factory('ovpn',$tmp_destdir);
|
||||
$upload = \RaspAP\Uploader\FileUpload::factory('ovpn',$tmp_destdir);
|
||||
$upload->set_max_file_size(64*KB);
|
||||
$upload->set_allowed_mime_types(array('ovpn' => 'text/plain'));
|
||||
$upload->file($file);
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?php
|
||||
|
||||
require_once 'app/lib/system.php';
|
||||
|
||||
$system = new \RaspAP\System\Sysinfo;
|
||||
|
||||
$hostname = $system->hostname();
|
||||
|
|
|
@ -3,64 +3,6 @@
|
|||
require_once 'includes/status_messages.php';
|
||||
require_once 'includes/functions.php';
|
||||
require_once 'config.php';
|
||||
require_once 'app/lib/system.php';
|
||||
|
||||
/**
|
||||
* Find the version of the Raspberry Pi
|
||||
* Currently only used for the system information page but may useful elsewhere
|
||||
*/
|
||||
|
||||
function RPiVersion()
|
||||
{
|
||||
// Lookup table from http://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version/
|
||||
$revisions = array(
|
||||
'0002' => 'Model B Revision 1.0',
|
||||
'0003' => 'Model B Revision 1.0 + ECN0001',
|
||||
'0004' => 'Model B Revision 2.0 (256 MB)',
|
||||
'0005' => 'Model B Revision 2.0 (256 MB)',
|
||||
'0006' => 'Model B Revision 2.0 (256 MB)',
|
||||
'0007' => 'Model A',
|
||||
'0008' => 'Model A',
|
||||
'0009' => 'Model A',
|
||||
'000d' => 'Model B Revision 2.0 (512 MB)',
|
||||
'000e' => 'Model B Revision 2.0 (512 MB)',
|
||||
'000f' => 'Model B Revision 2.0 (512 MB)',
|
||||
'0010' => 'Model B+',
|
||||
'0013' => 'Model B+',
|
||||
'0011' => 'Compute Module',
|
||||
'0012' => 'Model A+',
|
||||
'a01041' => 'a01041',
|
||||
'a21041' => 'a21041',
|
||||
'900092' => 'PiZero 1.2',
|
||||
'900093' => 'PiZero 1.3',
|
||||
'9000c1' => 'PiZero W',
|
||||
'a02082' => 'Pi 3 Model B',
|
||||
'a22082' => 'Pi 3 Model B',
|
||||
'a32082' => 'Pi 3 Model B',
|
||||
'a52082' => 'Pi 3 Model B',
|
||||
'a020d3' => 'Pi 3 Model B+',
|
||||
'a220a0' => 'Compute Module 3',
|
||||
'a020a0' => 'Compute Module 3',
|
||||
'a02100' => 'Compute Module 3+',
|
||||
'a03111' => 'Model 4B Revision 1.1 (1 GB)',
|
||||
'b03111' => 'Model 4B Revision 1.1 (2 GB)',
|
||||
'c03111' => 'Model 4B Revision 1.1 (4 GB)'
|
||||
);
|
||||
|
||||
$cpuinfo_array = '';
|
||||
exec('cat /proc/cpuinfo', $cpuinfo_array);
|
||||
$rev = trim(array_pop(explode(':', array_pop(preg_grep("/^Revision/", $cpuinfo_array)))));
|
||||
if (array_key_exists($rev, $revisions)) {
|
||||
return $revisions[$rev];
|
||||
} else {
|
||||
exec('cat /proc/device-tree/model', $model);
|
||||
if (isset($model[0])) {
|
||||
return $model[0];
|
||||
} else {
|
||||
return 'Unknown Device';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -134,7 +76,7 @@ function DisplaySystem(&$extraFooterScripts)
|
|||
// define locales
|
||||
$arrLocales = getLocales();
|
||||
|
||||
#fetch system status variables.
|
||||
// fetch system status variables
|
||||
$system = new \RaspAP\System\Sysinfo;
|
||||
|
||||
$hostname = $system->hostname();
|
||||
|
@ -143,7 +85,8 @@ function DisplaySystem(&$extraFooterScripts)
|
|||
$os = $system->operatingSystem();
|
||||
$kernel = $system->kernelVersion();
|
||||
$systime = $system->systime();
|
||||
|
||||
$revision = $system->rpiRevision();
|
||||
|
||||
// mem used
|
||||
$memused = $system->usedMemory();
|
||||
$memused_status = "primary";
|
||||
|
@ -215,6 +158,7 @@ function DisplaySystem(&$extraFooterScripts)
|
|||
"hostname",
|
||||
"uptime",
|
||||
"systime",
|
||||
"revision",
|
||||
"cores",
|
||||
"os",
|
||||
"kernel",
|
||||
|
|
|
@ -112,7 +112,7 @@ function SaveWireGuardUpload($status, $file, $optRules)
|
|||
throw new RuntimeException('Invalid parameters');
|
||||
}
|
||||
|
||||
$upload = \RaspAP\Uploader\Upload::factory('wg',$tmp_destdir);
|
||||
$upload = \RaspAP\Uploader\FileUpload::factory('wg',$tmp_destdir);
|
||||
$upload->set_max_file_size(64*KB);
|
||||
$upload->set_allowed_mime_types(array('text/plain'));
|
||||
$upload->file($file);
|
||||
|
|
|
@ -27,7 +27,7 @@ require 'includes/csrf.php';
|
|||
ensureCSRFSessionToken();
|
||||
|
||||
require_once 'includes/config.php';
|
||||
require_once 'app/lib/Auth.php';
|
||||
require_once 'includes/autoload.php';
|
||||
require_once 'includes/defaults.php';
|
||||
require_once 'includes/locale.php';
|
||||
require_once 'includes/functions.php';
|
||||
|
|
2
app/lib/Auth.php → src/RaspAP/Auth/HTTPAuth.php
Normal file → Executable file
2
app/lib/Auth.php → src/RaspAP/Auth/HTTPAuth.php
Normal file → Executable file
|
@ -11,7 +11,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace RaspAP\Authenticate;
|
||||
namespace RaspAP\Auth;
|
||||
|
||||
class HTTPAuth
|
||||
{
|
59
app/lib/system.php → src/RaspAP/System/Sysinfo.php
Normal file → Executable file
59
app/lib/system.php → src/RaspAP/System/Sysinfo.php
Normal file → Executable file
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Sytem info class
|
||||
* System info class
|
||||
*
|
||||
* @description System info class for RaspAP
|
||||
* @author Bill Zimmerman <billzimmerman@gmail.com>
|
||||
|
@ -92,5 +92,62 @@ class Sysinfo
|
|||
$kernel = shell_exec("uname -r");
|
||||
return $kernel;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns RPi Model and PCB Revision from Pi Revision Code (cpuinfo)
|
||||
* @see http://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version/
|
||||
*/
|
||||
public function rpiRevision()
|
||||
{
|
||||
$revisions = array(
|
||||
'0002' => 'Model B Revision 1.0',
|
||||
'0003' => 'Model B Revision 1.0 + ECN0001',
|
||||
'0004' => 'Model B Revision 2.0 (256 MB)',
|
||||
'0005' => 'Model B Revision 2.0 (256 MB)',
|
||||
'0006' => 'Model B Revision 2.0 (256 MB)',
|
||||
'0007' => 'Model A',
|
||||
'0008' => 'Model A',
|
||||
'0009' => 'Model A',
|
||||
'000d' => 'Model B Revision 2.0 (512 MB)',
|
||||
'000e' => 'Model B Revision 2.0 (512 MB)',
|
||||
'000f' => 'Model B Revision 2.0 (512 MB)',
|
||||
'0010' => 'Model B+',
|
||||
'0013' => 'Model B+',
|
||||
'0011' => 'Compute Module',
|
||||
'0012' => 'Model A+',
|
||||
'a01041' => 'a01041',
|
||||
'a21041' => 'a21041',
|
||||
'900092' => 'PiZero 1.2',
|
||||
'900093' => 'PiZero 1.3',
|
||||
'9000c1' => 'PiZero W',
|
||||
'a02082' => 'Pi 3 Model B',
|
||||
'a22082' => 'Pi 3 Model B',
|
||||
'a32082' => 'Pi 3 Model B',
|
||||
'a52082' => 'Pi 3 Model B',
|
||||
'a020d3' => 'Pi 3 Model B+',
|
||||
'a220a0' => 'Compute Module 3',
|
||||
'a020a0' => 'Compute Module 3',
|
||||
'a02100' => 'Compute Module 3+',
|
||||
'a03111' => 'Model 4B Revision 1.1 (1 GB)',
|
||||
'b03111' => 'Model 4B Revision 1.1 (2 GB)',
|
||||
'c03111' => 'Model 4B Revision 1.1 (4 GB)'
|
||||
);
|
||||
|
||||
$cpuinfo_array = '';
|
||||
exec('cat /proc/cpuinfo', $cpuinfo_array);
|
||||
$info = preg_grep("/^Revision/", $cpuinfo_array);
|
||||
$tmp = explode(':', array_pop($info));
|
||||
$rev = trim(array_pop($tmp));
|
||||
if (array_key_exists($rev, $revisions)) {
|
||||
return $revisions[$rev];
|
||||
} else {
|
||||
exec('cat /proc/device-tree/model', $model);
|
||||
if (isset($model[0])) {
|
||||
return $model[0];
|
||||
} else {
|
||||
return 'Unknown Device';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
6
app/lib/uploader.php → src/RaspAP/Uploader/FileUpload.php
Normal file → Executable file
6
app/lib/uploader.php → src/RaspAP/Uploader/FileUpload.php
Normal file → Executable file
|
@ -3,8 +3,6 @@
|
|||
/**
|
||||
* Simple PHP upload class
|
||||
*
|
||||
* Adapted from aivis/PHP-file-upload-class
|
||||
*
|
||||
* @description File upload class for RaspAP
|
||||
* @author Bill Zimmerman <billzimmerman@gmail.com>
|
||||
* @author Aivis Silins
|
||||
|
@ -14,7 +12,7 @@
|
|||
|
||||
namespace RaspAP\Uploader;
|
||||
|
||||
class Upload
|
||||
class FileUpload
|
||||
{
|
||||
|
||||
/**
|
||||
|
@ -110,7 +108,7 @@ class Upload
|
|||
*/
|
||||
public static function factory($destination, $root = false)
|
||||
{
|
||||
return new Upload($destination, $root);
|
||||
return new FileUpload($destination, $root);
|
||||
}
|
||||
|
||||
/**
|
|
@ -14,7 +14,7 @@ include('includes/sysstats.php');
|
|||
<div class="info-item col-xs-3"><?php echo _("Hostname"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($hostname, ENT_QUOTES); ?></div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<div class="info-item col-xs-3"><?php echo _("Pi Revision"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars(RPiVersion(), ENT_QUOTES); ?></div>
|
||||
<div class="info-item col-xs-3"><?php echo _("Pi Revision"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($revision, ENT_QUOTES); ?></div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<div class="info-item col-xs-3"><?php echo _("OS"); ?></div><div class="info-value col-xs-3"><?php echo htmlspecialchars($os, ENT_QUOTES); ?></div>
|
||||
|
|
Loading…
Reference in a new issue