From bea9ca12adf58896a95959c4a1fbb48f4bbc144b Mon Sep 17 00:00:00 2001 From: Inverle Date: Sun, 22 Jun 2025 00:10:13 +0200 Subject: Restore user config from backup when it doesn't exist (#7682) * Restore user config from backup when it doesn't exist * Supress warnings * Remove copied config if copy() fails * `return false` after `unlink()` * Performance --------- Co-authored-by: Alexandre Alapetite --- app/Controllers/userController.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'app/Controllers/userController.php') diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 9eac0d8ce..35851fceb 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -16,7 +16,18 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController { } public static function userExists(string $username): bool { - return @file_exists(USERS_PATH . '/' . $username . '/config.php'); + $config_path = USERS_PATH . '/' . $username . '/config.php'; + if (@file_exists($config_path)) { + return true; + } elseif (@file_exists($config_path . '.bak.php')) { + Minz_Log::warning('Config for user “' . $username . '” not found. Attempting to restore from backup.', ADMIN_LOG); + if (!copy($config_path . '.bak.php', $config_path)) { + @unlink($config_path); + return false; + } + return @file_exists($config_path); + } + return false; } /** @param array $userConfigUpdated */ -- cgit v1.2.3