From 94c57fa247ba107fce8fc1d1fc355191229dbddc Mon Sep 17 00:00:00 2001 From: Minteck Date: Sun, 8 Aug 2021 22:31:51 +0200 Subject: Permissions system --- .idea/workspace.xml | 35 +++++++++++++++++------ admin/NeutronManage/index.php | 3 +- admin/api/getIpLocation.php | 4 +-- admin/api/getQuota.php | 20 ++++++------- admin/api/getUbuntuUpgrades.php | 4 +-- admin/api/serverLogSummary.php | 2 +- admin/api/serverTemp.php | 8 +++--- admin/api/serverTime.php | 2 +- admin/callback/index.php | 9 +++++- admin/index.php | 27 +++++++++--------- admin/panes/audit.php | 56 +++++++++++++++++++++++++++---------- admin/panes/denied.php | 62 +++++++++++++++++++++++++++++++++++++++++ admin/panes/home.php | 36 ++++++------------------ admin/panes/neutroning.php | 4 +-- admin/panes/quotas.php | 8 +++--- admin/panes/telemetry.php | 26 ++++++++--------- admin/panes/unchained.php | 16 +++++------ admin/panes/uptime.php | 21 ++++---------- admin/panes/version.php | 26 ++++++++--------- admin/private/header.api.php | 14 ++++++++++ admin/private/header.php | 20 ++++++++++++- admin/private/header.sso.php | 25 +++++++++++++++++ admin/private/permissions.json | 22 +++++++++++++++ admin/private/permissions.php | 37 ++++++++++++++++++++++++ 24 files changed, 345 insertions(+), 142 deletions(-) create mode 100644 admin/panes/denied.php create mode 100644 admin/private/header.sso.php create mode 100644 admin/private/permissions.json create mode 100644 admin/private/permissions.php diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1e1b266..98257c2 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,11 +2,30 @@ - - + + + + - - + + + + + + + + + + + + + + + + + + + - + + - @@ -145,7 +164,7 @@ - + diff --git a/admin/NeutronManage/index.php b/admin/NeutronManage/index.php index f15a43e..0b10034 100644 --- a/admin/NeutronManage/index.php +++ b/admin/NeutronManage/index.php @@ -1,6 +1,7 @@ Local IP address"); + die("" . l("Local IP address", "Adresse IP locale") . ""); } else { if ($data["geoplugin_inEU"]) { - die($data["geoplugin_countryName"] . " EU"); + die($data["geoplugin_countryName"] . " " . l("EU", "UE") . ""); } else { die($data["geoplugin_countryName"]); } diff --git a/admin/api/getQuota.php b/admin/api/getQuota.php index 7b4e8e9..1d64737 100644 --- a/admin/api/getQuota.php +++ b/admin/api/getQuota.php @@ -22,32 +22,32 @@ if (in_array($arg, $webs)) { if ($tier === "3") { $perc = ($parts2[0] / 100000) * 100; if ($perc > 75) { - die("Using " . $parts[0] . "/100M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/100M (" . round($perc, 2) . "%)"); } else if ($perc > 50) { - die("Using " . $parts[0] . "/100M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/100M (" . round($perc, 2) . "%)"); } else { - die("Using " . $parts[0] . "/100M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/100M (" . round($perc, 2) . "%)"); } } else if ($tier === "5") { $perc = ($parts2[0] / 250000) * 100; if ($perc > 75) { - die("Using " . $parts[0] . "/250M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/250M (" . round($perc, 2) . "%)"); } else if ($perc > 50) { - die("Using " . $parts[0] . "/250M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/250M (" . round($perc, 2) . "%)"); } else { - die("Using " . $parts[0] . "/250M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/250M (" . round($perc, 2) . "%)"); } } else if ($tier === "7") { $perc = ($parts2[0] / 500000) * 100; if ($perc > 75) { - die("Using " . $parts[0] . "/500M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/500M (" . round($perc, 2) . "%)"); } else if ($perc > 50) { - die("Using " . $parts[0] . "/500M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/500M (" . round($perc, 2) . "%)"); } else { - die("Using " . $parts[0] . "/500M (" . round($perc, 2) . "%)"); + die("" . l("Using", "Utilise") . " " . $parts[0] . "/500M (" . round($perc, 2) . "%)"); } } else { - die("Using " . $parts[0] . ""); + die("" . l("Using", "Utilise") . " " . $parts[0] . ""); } } diff --git a/admin/api/getUbuntuUpgrades.php b/admin/api/getUbuntuUpgrades.php index 7da6259..8273036 100644 --- a/admin/api/getUbuntuUpgrades.php +++ b/admin/api/getUbuntuUpgrades.php @@ -4,7 +4,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/admin/private/header.api.php"; exec("bash -c \"sudo do-release-upgrade -c | grep 'New release'\"", $ret); if (count($ret) === 1) { - echo("Ubuntu " . explode("'", $ret[0])[1] . " is available, use do-release-upgrade to upgrade"); + echo(l("Ubuntu " . explode("'", $ret[0])[1] . " is available, use do-release-upgrade to upgrade", "Ubuntu " . explode("'", $ret[0])[1] . " est disponible, exécutez la commande do-release-upgrade pour effectuer la mise à niveau")); } else { - echo("This server is running the latest version of Ubuntu"); + echo(l("This server is running the latest version of Ubuntu", "Ce serveur exécute la dernière version d'Ubuntu")); } \ No newline at end of file diff --git a/admin/api/serverLogSummary.php b/admin/api/serverLogSummary.php index 78c0a2c..a4a20a0 100644 --- a/admin/api/serverLogSummary.php +++ b/admin/api/serverLogSummary.php @@ -5,4 +5,4 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/admin/private/header.api.php"; exec("journalctl -b --quiet", $ret); $cnt = count($ret); -echo("" . $cnt . " system log messages since last system startup"); \ No newline at end of file +echo("" . $cnt . " " . l("system log messages since last system startup", "messages de journalisation du système depuis le dernier démarrage")); \ No newline at end of file diff --git a/admin/api/serverTemp.php b/admin/api/serverTemp.php index 55cf34b..613c411 100644 --- a/admin/api/serverTemp.php +++ b/admin/api/serverTemp.php @@ -2,7 +2,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/admin/private/header.api.php"; -echo("Server running at "); +echo(l("Server running at", "Serveur fonctionnant à") . " "); exec("sensors -j", $out); $outp = implode("\n", $out); $outd = json_decode($outp, true); @@ -12,9 +12,9 @@ echo(round($outd["cpu_thermal-virtual-0"]["temp1"]["temp1_input"], 1)); ?>°C, 90) { - echo("completely overheating!"); + echo(l("completely overheating!", "en pleine surchauffe !")); } else if ($outd["cpu_thermal-virtual-0"]["temp1"]["temp1_input"] > 60) { - echo("starting to throttle!"); + echo(l("starting to throttle!", "commence à être bridé !")); } else { - echo("under normal temperatures"); + echo(l("under normal temperatures", "températures habituelles")); } \ No newline at end of file diff --git a/admin/api/serverTime.php b/admin/api/serverTime.php index 77ba321..a64a39e 100644 --- a/admin/api/serverTime.php +++ b/admin/api/serverTime.php @@ -9,4 +9,4 @@ $mins = $num % 60; $num = intdiv($num, 60); $hours = $num % 24; $num = intdiv($num, 24); $days = $num; -echo($days . " day·s, " . $hours . " hour·s, " . $mins . " minute·s, " . ceil($secs) . " second·s"); \ No newline at end of file +echo(l($days . " day·s, " . $hours . " hour·s, " . $mins . " minute·s, " . ceil($secs) . " second·s", $days . " jour·s, " . $hours . " heure·s, " . $mins . " minute·s, " . ceil($secs) . " seconde·s")); \ No newline at end of file diff --git a/admin/callback/index.php b/admin/callback/index.php index 8816c32..5052369 100644 --- a/admin/callback/index.php +++ b/admin/callback/index.php @@ -36,7 +36,14 @@ if (isset($result["access_token"])) { $result = curl_exec($crl); $result = json_decode($result, true); - if ($result["id"] === "74bca7d2-4694-477c-8bc1-9003315abbee") { + $login = false; + foreach (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/admin/private/permissions.json"), true) as $id => $user) { + if ($result["id"] === $id && in_array("login", $user)) { + $login = true; + } + } + + if ($login) { $token = bin2hex(random_bytes(32)); file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/admin/private/tokens/" . $token, json_encode($result)); setcookie("ADMIN_TOKEN", $token, 0, "/", ".minteck.ro.lt", true, true); diff --git a/admin/index.php b/admin/index.php index 0473560..c05b0be 100644 --- a/admin/index.php +++ b/admin/index.php @@ -147,37 +147,37 @@