From d9ac17d1b2d92855125bd3768d56949b0e0ed9a3 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Fri, 6 Aug 2021 12:24:47 +0200 Subject: [PATCH] Miglioramento procedura di configurazione --- .../Controllers/ConfigurationController.php | 37 +++++-------------- app/Http/Middleware/EnsureConfiguration.php | 12 +++--- app/Http/Middleware/EnsureEnvFile.php | 2 + app/Http/Middleware/Language.php | 1 + .../config/configuration-writing.blade.php | 4 +- .../views/config/configuration.blade.php | 6 +-- .../views/config/initialization.blade.php | 2 +- resources/views/errors/503.blade.php | 2 +- routes/web.php | 25 ++++++------- 9 files changed, 39 insertions(+), 52 deletions(-) diff --git a/app/Http/Controllers/ConfigurationController.php b/app/Http/Controllers/ConfigurationController.php index 3a774062c..535155a70 100644 --- a/app/Http/Controllers/ConfigurationController.php +++ b/app/Http/Controllers/ConfigurationController.php @@ -91,10 +91,13 @@ class ConfigurationController extends Controller */ public function cache(Request $request) { + $route = route('config.index'); + // Refresh della cache sulla configurazione + Artisan::call('cache:clear'); Artisan::call('config:cache'); - return redirect(route('configuration')); + return redirect($route); } /** @@ -119,7 +122,7 @@ class ConfigurationController extends Controller // Controllo sullo stato della connessione $result = $this->checkConnection($request); if ($result === null) { - return redirect(route('configuration')); + return redirect(route('config.index')); } $env = $this->buildEnvFrom($request->all()); @@ -130,11 +133,11 @@ class ConfigurationController extends Controller // Redirect in caso di fallimento if ($result === false) { - return redirect(route('configuration-write')) + return redirect(route('config.write')) ->withInput(); } - return redirect(route('configuration-cache')); + return redirect(route('config.cache')); } /** @@ -255,33 +258,13 @@ class ConfigurationController extends Controller $content = file_get_contents($file); foreach ($config as $key => $value) { - $content = str_replace( - "$key=".$this->getCurrentEnvValue($key), - "$key=".$value, + $content = preg_replace( + '/'.preg_quote($key."=")."(.*)/", + $key."=".$value, $content ); } return $content; } - - /** - * Restituisce il valore (fisico) corrente per una chiave del file .env. - * - * @param $key - * - * @return mixed|string - */ - protected function getCurrentEnvValue($key) - { - if (is_bool(env($key))) { - $old = env($key) ? 'true' : 'false'; - } elseif (env($key) === null) { - $old = 'null'; - } else { - $old = env($key); - } - - return $old; - } } diff --git a/app/Http/Middleware/EnsureConfiguration.php b/app/Http/Middleware/EnsureConfiguration.php index fbb1c4de6..49548d270 100644 --- a/app/Http/Middleware/EnsureConfiguration.php +++ b/app/Http/Middleware/EnsureConfiguration.php @@ -85,7 +85,7 @@ class EnsureConfiguration // Redirect nel caso in cui i requisiti siano soddisfatti if (in_array($route->getName(), $configuration_paths)) { - $this->setRedirect(route('configuration')); + $this->setRedirect(route('config.index')); } } else { // Redirect per requisiti incompleti @@ -112,20 +112,22 @@ class EnsureConfiguration return true; } - $configuration_paths = ['configuration', 'configuration-save', 'configuration-write', 'configuration-test']; $configuration_completed = ConfigurationController::isConfigured(); + $parts = explode('.', $route->getName()); + $is_configuration_path = $parts[0] == 'config'; + if ($configuration_completed) { Cache::put('configurazione_completata', true); // Redirect nel caso in cui la configurazione sia correttamente funzionante - if (in_array($route->getName(), $configuration_paths)) { + if ($is_configuration_path) { $this->setRedirect(route('update')); } } else { // Redirect per configurazione mancante - if (!in_array($route->getName(), $configuration_paths)) { - $this->setRedirect(route('configuration')); + if (!$is_configuration_path) { + $this->setRedirect(route('config.index')); } } diff --git a/app/Http/Middleware/EnsureEnvFile.php b/app/Http/Middleware/EnsureEnvFile.php index ecbb8a398..475fc348e 100644 --- a/app/Http/Middleware/EnsureEnvFile.php +++ b/app/Http/Middleware/EnsureEnvFile.php @@ -26,6 +26,8 @@ class EnsureEnvFile // Generazione automatica delle key Laravel Artisan::call('key:generate'); + Artisan::call('cache:clear'); + Artisan::call('config:cache'); header('Refresh: 0;'); return response('Missing app key'); diff --git a/app/Http/Middleware/Language.php b/app/Http/Middleware/Language.php index 926c69bcb..c5cf50781 100644 --- a/app/Http/Middleware/Language.php +++ b/app/Http/Middleware/Language.php @@ -19,6 +19,7 @@ class Language $locale = env('APP_LOCALE', 'it_IT'); $manager->setLocale($locale); + app()->setLocale($locale); return $next($request); } diff --git a/resources/views/config/configuration-writing.blade.php b/resources/views/config/configuration-writing.blade.php index b91ef6d33..ee50daf07 100644 --- a/resources/views/config/configuration-writing.blade.php +++ b/resources/views/config/configuration-writing.blade.php @@ -9,7 +9,7 @@ @section('content')

{!! tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', ['_FILE_' => '.env']) !!}. {{ tr('Per completare la configurazione del gestionale, è necessario inserire provare nuovamente attraverso il pulsante "Riprova" oppure inserire manualmente il contenuto sottostante nel file indicato') }}.

-
+ @foreach($params as $key => $value) @endforeach @@ -39,7 +39,7 @@

{!! tr('Inserire il seguente testo nel file _FILE_', ['_FILE_' => '.env']) !!}.

{{ tr('Attenzione!') }} {!! tr('A seguito del completamento manuale della configurazione, è necessario utilizzare il pulsante dedicato "Completa inserimento" oppure eseguire da riga di comando _CMD_', ['_CMD_' => "php artisan config:cache"]) !!}.

- + {{ tr('Completa inserimento') }} diff --git a/resources/views/config/configuration.blade.php b/resources/views/config/configuration.blade.php index e5203aa7d..e33a8e817 100644 --- a/resources/views/config/configuration.blade.php +++ b/resources/views/config/configuration.blade.php @@ -5,10 +5,10 @@ @section('body')
- + @csrf -
+
{{ tr('Logo OpenSTAManager') }}

{!! tr('Benvenuto in _NAME_!', ['_NAME_' => ''.tr('OpenSTAManager').'']) !!}

{!! tr('Puoi procedere alla configurazione tecnica del software attraverso i parametri seguenti, che potranno essere corretti secondo necessità tramite il file _FILE_', ['_FILE_' => '.env']) !!}.

@@ -118,7 +118,7 @@ @section('js')