honor safe_upgrade setting

Signed-off-by: Andy Miller <rhuk@mac.com>
This commit is contained in:
Andy Miller
2025-11-14 16:14:56 +00:00
parent 419ab56c00
commit bbed7e5478
7 changed files with 60 additions and 8 deletions

View File

@@ -14,6 +14,7 @@
namespace Grav\Plugin\Admin;
use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder;
use Grav\Common\GPM\Installer;
use Grav\Common\GPM\GPM;
@@ -1068,14 +1069,37 @@ class SafeUpgradeManager
{
try {
$config = $this->grav['config'] ?? null;
if ($config === null) {
return true;
return self::configAllowsSafeUpgrade($config);
} catch (Throwable $e) {
return false;
}
}
/**
* @param Config|null $config
* @return bool
*/
public static function configAllowsSafeUpgrade(?Config $config): bool
{
if ($config === null) {
return false;
}
$value = $config->get('system.updates.safe_upgrade');
if ($value === null) {
return false;
}
if (is_string($value)) {
$filtered = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
if ($filtered === null) {
return false;
}
return (bool)$config->get('system.updates.safe_upgrade', true);
} catch (Throwable $e) {
return true;
return $filtered;
}
return (bool)$value;
}
/**