Miglioramento procedura di configurazione

This commit is contained in:
Dasc3er 2021-08-06 12:24:47 +02:00
parent 8a30c39262
commit d9ac17d1b2
9 changed files with 39 additions and 52 deletions

View File

@ -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;
}
}

View File

@ -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'));
}
}

View File

@ -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');

View File

@ -19,6 +19,7 @@ class Language
$locale = env('APP_LOCALE', 'it_IT');
$manager->setLocale($locale);
app()->setLocale($locale);
return $next($request);
}

View File

@ -9,7 +9,7 @@
@section('content')
<p>{!! tr('Sembra che non ci siano i permessi di scrittura sul file _FILE_', ['_FILE_' => '<b>.env</b>']) !!}. {{ tr('Per completare la configurazione del gestionale, è necessario inserire provare nuovamente attraverso il pulsante "Riprova" oppure inserire manualmente il contenuto sottostante nel file indicato') }}.</p>
<form action="{{ route('configuration-save') }}" method="post">
<form action="{{ route('config.save') }}" method="post">
@foreach($params as $key => $value)
<input type="hidden" name="{{ $key }}" value="{{ $value }}">
@endforeach
@ -39,7 +39,7 @@
<p>{!! tr('Inserire il seguente testo nel file _FILE_', ['_FILE_' => '<b>.env</b>']) !!}.</p>
<p><strong>{{ tr('Attenzione!') }}</strong> {!! tr('A seguito del completamento manuale della configurazione, è necessario utilizzare il pulsante dedicato "Completa inserimento" oppure eseguire da riga di comando _CMD_', ['_CMD_' => "<kbd>php artisan config:cache</kbd>"]) !!}.</p>
<a class="btn btn-success" href="{{ route('configuration-cache') }}">
<a class="btn btn-success" href="{{ route('config.cache') }}">
<i class="fa fa-download"></i> {{ tr('Completa inserimento') }}
</a>

View File

@ -5,10 +5,10 @@
@section('body')
<div class="container pb-5">
<form action="{{ route('configuration-save') }}" method="post" id="config-form">
<form action="{{ route('config.save') }}" method="post" id="config-form">
@csrf
<div class="py-5 text-center">
<div class="py-5 text-center" style="margin-top: 40px">
<img class="d-block mx-auto mb-4" src="{{ url('/') }}/assets/img/full_logo.png" alt="{{ tr('Logo OpenSTAManager') }}">
<h2>{!! tr('Benvenuto in _NAME_!', ['_NAME_' => '<strong>'.tr('OpenSTAManager').'</strong>']) !!}</h2>
<p class="lead">{!! tr('Puoi procedere alla configurazione tecnica del software attraverso i parametri seguenti, che potranno essere corretti secondo necessità tramite il file _FILE_', ['_FILE_' => '<i>.env</i>']) !!}. </p>
@ -118,7 +118,7 @@
@section('js')
<script>
globals.configuration = {
test_url: "{{ route('configuration-test') }}",
test_url: "{{ route('config.test') }}",
translations: {
error: "{{ tr('Errore della configurazione') }}",
errorMessage: "{{ tr('La configurazione non è corretta') }}.",

View File

@ -5,7 +5,7 @@
@section('body')
<div class="container pb-5">
<div class="py-5 text-center">
<div class="py-5 text-center" style="margin-top: 40px">
<img class="d-block mx-auto mb-4" src="{{ url('/') }}/assets/img/full_logo.png" alt="{{ tr('Logo OpenSTAManager') }}">
<h2>{!! tr('Inizializzazione di _NAME_!', ['_NAME_' => '<strong>'.tr('OpenSTAManager').'</strong>']) !!}</h2>
<p class="lead">{{ tr("Completa la configurazione del gestionale inserendo le ultime informazioni di base") }}. </p>

View File

@ -5,6 +5,6 @@
@section('error_color', 'info')
@section('error_header', '503')
@section('error_message', tr('Servizio non disponibile!'))
@section('error_message', tr('Servizio non disponibile'))
@section('error_info', tr("E' in corso un processo di manutenzione dell'applicazione"))
@section('error_return', tr("Torneremo attivi il più presto possibile"))

View File

@ -39,23 +39,22 @@ Route::get('/requirements', [RequirementsController::class, 'index'])
->name('requirements');
// Sezione di configurazione
Route::prefix('config')
->group(function () {
Route::get('/', [ConfigurationController::class, 'index'])
->name('configuration');
Route::group(['as' => 'config.', 'prefix' => 'config'], function () {
Route::get('/', [ConfigurationController::class, 'index'])
->name('index');
Route::get('/test', [ConfigurationController::class, 'test'])
->name('configuration-test');
Route::get('/test', [ConfigurationController::class, 'test'])
->name('test');
Route::get('/cache', [ConfigurationController::class, 'cache'])
->name('configuration-cache');
Route::get('/cache', [ConfigurationController::class, 'cache'])
->name('cache');
Route::get('/write', [ConfigurationController::class, 'write'])
->name('configuration-write');
Route::get('/write', [ConfigurationController::class, 'write'])
->name('write');
Route::post('/save', [ConfigurationController::class, 'save'])
->name('configuration-save');
});
Route::post('/save', [ConfigurationController::class, 'save'])
->name('save');
});
// Installazione aggiornamenti del gestionale
Route::get('/update', [UpdateController::class, 'index'])