Aggiunta controllo su impostazioni

This commit is contained in:
Pek5892 2024-01-15 14:52:26 +01:00
parent 0dace8b900
commit 453b3603cc
6 changed files with 71 additions and 10 deletions

1
.gitignore vendored
View File

@ -93,6 +93,7 @@ manifest.json
checksum.json
database.json
database_5_7.json
settings.json
/tests/_log/*
/tests/_temp/*

View File

@ -473,6 +473,7 @@ function release(done) {
'!checksum.json',
'!database.json',
'!database_5_7.json',
'!settings.json',
'!manifest.json',
'!.idea/**',
'!.git/**',
@ -487,6 +488,7 @@ function release(done) {
'!config.inc.php',
'!psalm.xml',
'!update/structure.php',
'!update/settings.php',
'!**/*.(lock|phar|log|zip|bak|jar|txt)',
'!**/~*',
'!vendor/tecnickcom/tcpdf/examples/**',
@ -535,6 +537,13 @@ function release(done) {
name: 'database.json'
});
// Aggiunta del file per il controllo delle impostazioni
archive.append(shell.exec('php update/settings.php', {
silent: true
}).stdout, {
name: 'settings.json'
});
// Aggiunta del commit corrente nel file REVISION
archive.append(shell.exec('git rev-parse --short HEAD', {
silent: true

View File

@ -304,6 +304,7 @@ $files_to_check = [
'manifest.json' => tr('Necessario per l\'aggiunta a schermata home da terminale (creato al termine della configurazione)'),
'database_5_7.json' => tr('Necessario per il controllo integrità con database MySQL 5.7.x'),
'database.json' => tr('Necessario per il controllo integrità con database MySQL 8.0.x'),
'settings.json' => tr('Necessario per il controllo integrità impostazioni del database'),
'checksum.json' => tr('Necessario per il controllo integrità dei files del gestionale'),
];

View File

@ -94,8 +94,14 @@ if (empty($data)) {
$info = Update::getDatabaseStructure();
$results = integrity_diff($data, $info);
$contents = file_get_contents(base_dir().'/settings.json');
$data = json_decode($contents, true);
$settings = Update::getSettings();
$results_settings = array_diff($data, $settings);
// Schermata di visualizzazione degli errori
if (!empty($results)) {
if (!empty($results) || !empty($results_settings)) {
echo '
<p>'.tr("Segue l'elenco delle tabelle del database che presentano una struttura diversa rispetto a quella prevista nella versione ufficiale del gestionale").'.</p>
<div class="alert alert-warning">
@ -185,11 +191,37 @@ if (!empty($results)) {
echo '
</tbody>
</table>';
}
}
}
} else {
echo '
if (!empty($results_settings)) {
echo'
<table class="table table-bordered">
<thead>
<h3>Impostazioni mancanti</h3>
<tr>
<th>'.tr('Nome').'</th>
<th>'.tr('Tipo').'</th>
</tr>
</thead>
<tbody>';
foreach ($results_settings as $key => $setting) {
echo'
<tr>
<td>
'.$key.'
</td>
<td>
'.$setting.'
</td>
</tr>';
}
echo '
</tbody>
</table>';
}
} else{
echo '
<div class="alert alert-info">
<i class="fa fa-info-circle"></i> '.tr('Il database non presenta problemi di integrità').'.
<i class="fa fa-info-circle"></i> '.tr('Il database non presenta problemi di integrità').'.
</div>';
}
}

View File

@ -208,7 +208,7 @@ class Update
self::normalizeDatabase($database->getDatabaseName());
if (class_exists('\Models\Cache')) {
\Models\Cache::pool('Ultima versione di OpenSTAManager disponibile')->set(null);
Models\Cache::pool('Ultima versione di OpenSTAManager disponibile')->set(null);
}
// Correzione permessi per le cartelle backup e files
@ -259,7 +259,7 @@ class Update
for ($i = $start; $i < $end; ++$i) {
try {
$database->query($queries[$i]);
} catch (\Exception $e) {
} catch (Exception $e) {
throw new PDOException(tr('Aggiornamento fallito').': '.$queries[$i]);
}
@ -343,9 +343,9 @@ class Update
self::normalizeDatabase($database->getDatabaseName());
return true;
} catch (\Exception $e) {
} catch (Exception $e) {
$logger = logger();
$logger->addRecord(\Monolog\Logger::EMERGENCY, $e->getMessage());
$logger->addRecord(Monolog\Logger::EMERGENCY, $e->getMessage());
}
return false;
@ -419,6 +419,13 @@ class Update
return $info;
}
public static function getSettings()
{
$settings = database()->table('zz_settings')->pluck('tipo', 'nome')->toArray();
return $settings;
}
/**
* Controlla la presenza di aggiornamenti e prepara il database per la procedura.
*/

11
update/settings.php Normal file
View File

@ -0,0 +1,11 @@
<?php
error_reporting(0);
$skip_permissions = true;
include_once __DIR__.'/../core.php';
$info = Update::getSettings();
$response = json_encode($info);
echo $response;