diff --git a/app/Filament/Pages/Supporto/Modifiche.php b/app/Filament/Pages/Supporto/Modifiche.php
index 4d8173d..cd24bfe 100644
--- a/app/Filament/Pages/Supporto/Modifiche.php
+++ b/app/Filament/Pages/Supporto/Modifiche.php
@@ -343,6 +343,21 @@ public function runNodeRefresh(): void
$this->startNodeRefreshJob();
}
+ public function runNodeRefreshFallback(): void
+ {
+ if (! $this->canRunUpdate()) {
+ Notification::make()
+ ->title('Permessi insufficienti')
+ ->body('Solo super-admin/admin/amministratore possono lanciare il refresh completo del nodo.')
+ ->danger()
+ ->send();
+
+ return;
+ }
+
+ $this->startNodeRefreshJob(true);
+ }
+
public function generateDevelopmentSnapshot(): void
{
if (! $this->canRunUpdate()) {
@@ -1749,7 +1764,7 @@ private function startGitSyncJob(): void
->send();
}
- private function startNodeRefreshJob(): void
+ private function startNodeRefreshJob(bool $skipMaintenance = false): void
{
$jobId = now()->format('YmdHis') . '-' . Str::lower(Str::random(6));
$jobsDir = storage_path('app/support/update-jobs');
@@ -1763,13 +1778,17 @@ private function startNodeRefreshJob(): void
$this->updateJobId = $jobId;
$this->updateInProgress = true;
$this->updateProgressPercent = 1;
- $this->updateProgressMessage = 'Preparazione refresh nodo da Gitea...';
+ $this->updateProgressMessage = $skipMaintenance
+ ? 'Preparazione refresh nodo da Gitea senza maintenance mode...'
+ : 'Preparazione refresh nodo da Gitea...';
$this->updateProgressStatus = 'running';
@file_put_contents($progressPath, json_encode([
'timestamp' => now()->toIso8601String(),
'percent' => 1,
- 'message' => 'Preparazione refresh nodo da Gitea...',
+ 'message' => $skipMaintenance
+ ? 'Preparazione refresh nodo da Gitea senza maintenance mode...'
+ : 'Preparazione refresh nodo da Gitea...',
'status' => 'running',
'exit_code' => null,
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
@@ -1795,6 +1814,10 @@ private function startNodeRefreshJob(): void
$args[] = '--skip-backup';
}
+ if ($skipMaintenance) {
+ $args[] = '--skip-maintenance';
+ }
+
if ($driveEnabled && $adminId > 0) {
$args[] = '--drive';
$args[] = '--admin-id=' . $adminId;
@@ -1826,7 +1849,9 @@ private function startNodeRefreshJob(): void
Notification::make()
->title('Refresh nodo avviato')
- ->body('Sync da Gitea, migrate e rebuild cache verranno eseguiti direttamente sul nodo da browser.')
+ ->body($skipMaintenance
+ ? 'Refresh nodo avviato senza maintenance mode. Usalo solo come percorso di riserva su macchine dove il blocco accessi non si attiva.'
+ : 'Sync da Gitea, migrate e rebuild cache verranno eseguiti direttamente sul nodo da browser.')
->success()
->send();
}
diff --git a/resources/views/filament/pages/supporto/aggiornamento-launcher.blade.php b/resources/views/filament/pages/supporto/aggiornamento-launcher.blade.php
index 2aefda0..7265f9b 100644
--- a/resources/views/filament/pages/supporto/aggiornamento-launcher.blade.php
+++ b/resources/views/filament/pages/supporto/aggiornamento-launcher.blade.php
@@ -62,6 +62,9 @@