From c9b81414b0fca2b91a0b9ad29c96e9bb08135c2f Mon Sep 17 00:00:00 2001
From: Fluffy-Bean
[ERRO] usr/ folder not found
"; @@ -9,7 +9,7 @@ if (defined('ROOT') && $_SESSION['id'] == 1) { mkdir("usr"); } - if (is_dir(__DIR__."/../../usr/images")) { + if (is_dir(__DIR__."/../../../usr/images")) { echo "[INFO] Found usr/images/ folder!
"; } else { echo "[ERRO] usr/images/ folder not found
"; @@ -17,36 +17,36 @@ if (defined('ROOT') && $_SESSION['id'] == 1) { mkdir("usr/images"); } - if (!is_dir(__DIR__."/../../usr/images/thumbnails")) { + if (!is_dir(__DIR__."/../../../usr/images/thumbnails")) { echo "[ERRO] usr/images/thumbnails/ folder not found
"; echo "[INFO] Creating usr/images/thumbnails/ folder...
"; mkdir("usr/images/thumbnails"); } - if (!is_dir(__DIR__."/../../usr/images/previews")) { + if (!is_dir(__DIR__."/../../../usr/images/previews")) { echo "[ERRO] usr/images/previews/ folder not found
"; echo "[INFO] Creating usr/images/previews/ folder...
"; mkdir("usr/images/previews"); } - if (!is_dir(__DIR__."/../../usr/conf")) { + if (!is_dir(__DIR__."/../../../usr/conf")) { echo "[ERRO] usr/conf/ folder not found
"; echo "[INFO] Creating usr/conf/ folder...
"; mkdir("usr/conf"); } - if (is_file("../../usr/conf/conf.json")) { + if (is_file(__DIR__."/../../../usr/conf/conf.json")) { echo "[INFO] Found usr/conf/conf.json file!
"; } else { echo "[ERRO] usr/conf/conf.json file not found
"; echo "[INFO] Creating usr/conf/conf.json file...
"; try { - $conf = file_get_contents(__DIR__."/../../usr/conf.default.json"); + $conf = file_get_contents(__DIR__."/../../../usr/conf.default.json"); - $conf_new = fopen(__DIR__."/../../usr/conf/conf.json", "w"); + $conf_new = fopen(__DIR__."/../../../usr/conf/conf.json", "w"); if ($conf_new) { fwrite($conf_new, $conf); diff --git a/app/sanity/sanity.php b/app/sanity/sanity.php index 95cd796..0537420 100644 --- a/app/sanity/sanity.php +++ b/app/sanity/sanity.php @@ -19,10 +19,10 @@ if (isset($_POST['fix'])) { define('ROOT', true); // Only run scripts from this file echo "==== Databases ====
"; - include_once "database.php"; + require_once "fix/_database.php"; echo "==== Folders ====
"; - include_once "folders.php"; + require_once "fix/_folders.php"; $autofix_end = microtime(true); $autofix_time = ($autofix_end - $autofix_start); @@ -32,233 +32,50 @@ if (isset($_POST['fix'])) { } if (isset($_POST['check'])) { - function check_json(): array - { - $results = array(); - - if (!is_file(__DIR__."/../../usr/conf/msg.json")) { - $results[] = array( - 'type'=>'warning', - 'message'=>'msg.json is missing', - 'fix'=>'auto' - ); - } - - if (!is_file(__DIR__."/../../usr/conf/conf.json")) { - if (is_file(__DIR__."/../../usr/conf/manifest.json")) { - $results[] = array( - 'type'=>'critical', - 'message'=>'manifest.json is deprecated, please rename it to conf.json', - 'fix'=>'manual' - ); - } else { - $results[] = array( - 'type'=>'critical', - 'message'=>'conf.json is missing, using conf.default.json instead', - 'fix'=>'auto' - ); - } - } else { - $manifest = json_decode(file_get_contents(__DIR__."/../../usr/conf/conf.json"), true); - - if (empty($manifest['user_name']) || $manifest['user_name'] == "[your name]") { - $results[] = array( - 'type'=>'warning', - 'message'=>'conf.json is missing your name', - 'fix'=>'manual' - ); - } - if ($manifest['upload']['rename_on_upload']) { - if (empty($manifest['upload']['rename_to'])) { - $results[] = array( - 'type'=>'critical', - 'message'=>'conf.json doesnt know what to rename your files to', - 'fix'=>'manual' - ); - } else { - $rename_to = $manifest['upload']['rename_to']; - $rename_rate = 0; - - if (str_contains($rename_to, '{{autoinc}}')) $rename_rate = 5; - if (str_contains($rename_to, '{{time}}')) $rename_rate = 5; - - if (str_contains($rename_to, '{{date}}')) $rename_rate += 2; - if (str_contains($rename_to, '{{filename}}')) $rename_rate += 2; - - if (str_contains($rename_to, '{{username}}') || str_contains($rename_to, '{{userid}}')) $rename_rate += 1; - - if ($rename_rate < 2) { - $results[] = array( - 'type'=>'critical', - 'message'=>'You will encounter errors when uploading images due to filenames, update your conf.json', - 'fix'=>'manual' - ); - } elseif ($rename_rate < 5 && $rename_rate > 2) { - $results[] = array( - 'type'=>'warning', - 'message'=>'You may encounter errors when uploading images due to filenames, concider modifying your conf.json', - 'fix'=>'manual' - ); - } - } - } - - if ($manifest['is_testing']) { - $results[] = array( - 'type'=>'warning', - 'message'=>'You are currently in testing mode, errors will be displayed to the user. This is not recommended for production use.' - ); - } - } - - return $results; + if (empty($_SESSION['id'])) { + echo "[ERROR] You are not logged in
"; + exit(); + } elseif ($_SESSION['id'] != 1) { + echo "[ERRO] You cannot use Autofix as an Admin currently.
"; + exit(); } - function check_dir(): array - { - $results = array(); + define('ROOT', true); // Only run scripts from this file + $results = array(); // Array to store results - $files = array( - 'usr/images', - 'usr/images/pfp', - 'usr/images/previews', - 'usr/images/thumbnails' - ); + require_once "check/_dir.php"; + require_once "check/_json.php"; + require_once "check/_perms.php"; + require_once "check/_versions.php"; - foreach ($files as $file) { - if (!is_dir(__DIR__."/../../$file")) { - $results[] = array( - 'type'=>'critical', - 'message'=>"$file is missing", - 'fix'=>'auto' - ); - } - } - - return $results; - } - - function check_version(): array - { - $results = array(); - - // Local app info - $app_local = json_decode(file_get_contents(__DIR__."/../gallery.json"), true); - - // Repo app info - $curl_url = "https://raw.githubusercontent.com/Fluffy-Bean/image-gallery/".$app_local['branch']."/app/settings/manifest.json"; - $curl = curl_init(); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_URL, $curl_url); - $result = curl_exec($curl); - curl_close($curl); - - $app_repo = json_decode($result, true); - - if ($app_local['version'] < $app_repo['version']) { - $results[] = array( - 'type'=>'critical', - 'message'=>'You are not running the latest version of the app v'.$app_repo['version'], - 'link'=>'https://github.com/Fluffy-Bean/image-gallery', - 'fix'=>'manual' - ); - } elseif ($app_local['version'] > $app_repo['version']) { - $results[] = array( - 'type'=>'critical', - 'message'=>'You are running a version of the app that is newer than the latest release v'.$app_repo['version'], - 'link'=>'https://github.com/Fluffy-Bean/image-gallery', - 'fix'=>'manual' - ); - } - - if (PHP_VERSION_ID < 80000) { - $results[] = array( - 'type'=>'warning', - 'message'=>'Your current version of PHP is '.PHP_VERSION.' The reccomended version is 8.0.0 or higher', - 'link'=>'https://www.php.net/downloads.php', - 'fix'=>'manual' - ); - } - - return $results; - } - - function check_permissions(): array - { - $results = array(); - - $files = array( - 'usr/images', - 'usr/images/pfp', - 'usr/images/previews', - 'usr/images/thumbnails', - 'usr/conf/conf.json', - 'usr/conf/msg.json', - 'usr/conf.default.json' - ); - - foreach ($files as $file) { - if (!is_writable(__DIR__."/../../$file")) { - $results[] = array( - 'type'=>'critical', - 'message'=>"$file is not writable", - 'fix'=>'manual' - ); - } - } - - foreach ($files as $file) { - if (!fileperms(__DIR__."/../../$file")) { - $results[] = array( - 'type'=>'critical', - 'message'=>"PHP does not have permitions for $file", - 'fix'=>'manual' - ); - } - } - - return $results; - } - - if ($_SESSION['id'] == 1) { - $results = array(); - - foreach (check_json() as $result) $results[] = $result; - foreach (check_dir() as $result) $results[] = $result; - foreach (check_permissions() as $result) $results[] = $result; - foreach (check_version() as $result) $results[] = $result; - - if (empty($results)) { - echo "No errors! Lookin' good :3
"; - } else { - foreach ($results as $result) { - if ($result['type'] == 'critical') { - echo "Critical "; - } else { - echo "
Warning "; - } - - if ($result['fix'] == 'auto') { - echo "Auto fix available "; - $autofix_enable = true; - } elseif ($result['fix'] == 'manual') { - echo "Manual fix required "; - } - - if (isset($result['link'])) { - echo "Recources "; - } - - echo $result['message']."
"; - } - - if ($autofix_enable) { - echo ""; - } - } + if (empty($results)) { + echo "No errors! Lookin' good :3
"; } else { - echo "You do not have permission todo this action!!!!!
"; - } + foreach ($results as $result) { + if ($result['type'] == 'critical') { + echo "Critical "; + } else { + echo "
Warning "; + } + + if ($result['fix'] == 'auto') { + echo "Auto fix available "; + $autofix_enable = true; + } elseif ($result['fix'] == 'manual') { + echo "Manual fix required "; + } + + if (isset($result['link'])) { + echo "Recources "; + } + + echo $result['message']."
"; + } + + if ($autofix_enable) { + echo ""; + } + } } \ No newline at end of file diff --git a/app/settings.php b/app/settings.php index 1ea6eea..af1b667 100644 --- a/app/settings.php +++ b/app/settings.php @@ -10,14 +10,19 @@ */ if (is_file(__DIR__."/../usr/conf/conf.json")) { $user_settings = json_decode(file_get_contents(__DIR__."/../usr/conf/conf.json"), true); + + if (is_file(__DIR__."/../usr/conf/msg.json")) { + $user_welcome = json_decode(file_get_contents(__DIR__."/../usr/conf/msg.json"), true)['welcome']; + } +} elseif (is_file(__DIR__."/../usr/conf/manifest.json")) { + $user_settings = json_decode(file_get_contents(__DIR__."/../usr/conf/manifest.json"), true); + $user_welcome = $user_settings['welcome_msg']; +} elseif (is_file(__DIR__."/manifest.json")) { + $user_settings = json_decode(file_get_contents(__DIR__."/manifest.json"), true); + $user_welcome = $user_settings['welcome_msg']; } else { $user_settings = json_decode(file_get_contents(__DIR__."/../usr/conf.default.json"), true); } -if (is_file(__DIR__."/../usr/conf/msg.json")) { - $user_welcome = json_decode(file_get_contents(__DIR__."/../usr/conf/msg.json"), true); - $user_welcome = $user_welcome['welcome']; -} - $web_info = json_decode(file_get_contents(__DIR__."/gallery.json"), true); $upload_conf = $user_settings['upload']; \ No newline at end of file diff --git a/usr/conf.default.json b/usr/conf.default.json index 1687183..29084fd 100644 --- a/usr/conf.default.json +++ b/usr/conf.default.json @@ -14,5 +14,6 @@ "png", "webp" ] - } + }, + "manifest": "3" } \ No newline at end of file