Compare commits

...

2 Commits

Author SHA1 Message Date
Dasc3er c50a381626 Aggiunto redirect in caso di public raggiungibile 2021-08-06 13:04:53 +02:00
Dasc3er d9ac17d1b2 Miglioramento procedura di configurazione 2021-08-06 12:24:47 +02:00
12 changed files with 68 additions and 53 deletions

4
.htaccess Normal file
View File

@ -0,0 +1,4 @@
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^.+$ index.php [L]
</IfModule>

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

24
index.php Normal file
View File

@ -0,0 +1,24 @@
<?php
$base_dir = __DIR__;
// Individuazione di $prefix
$script = $_SERVER['REQUEST_URI'];
$needle = '/'.basename($base_dir).'/';
$pos = strrpos($script, $needle);
if ($pos !== false) {
$prefix = substr($script, 0, $pos).$needle;
$suffix = substr($script, $pos + strlen($needle));
} else {
$prefix = '/';
$suffix = '';
}
$prefix = rtrim($prefix, '/');
$prefix = str_replace('%2F', '/', rawurlencode($prefix));
$suffix = str_replace('%2F', '/', rawurlencode($suffix));
$url = 'http://'.$_SERVER['HTTP_HOST'].$prefix.'/public/'.$suffix;
$url = str_replace('index.php', '', $url);
header('Location: '.$url);
exit();

2
legacy

@ -1 +1 @@
Subproject commit 39a79aea88f220f4d49c349df176b1ef310005f8
Subproject commit af0668f0c2e9751c36430e1b7595a1d32058ef64

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