mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-01-18 10:15:05 +01:00
Fix di alcuni bug (#117)
Risoluzione di alcuni malfunzionamenti durante l'installazione causati da codice non aggiornato.
This commit is contained in:
parent
f370632c28
commit
3d99799264
@ -50,14 +50,13 @@ if (post('db_host') !== null) {
|
||||
|
||||
$results = $dbo->fetchArray('SHOW GRANTS FOR CURRENT_USER');
|
||||
foreach ($results as $result) {
|
||||
$privileges = current($result);
|
||||
|
||||
if (
|
||||
str_contains($result, $find) &&
|
||||
(
|
||||
str_contains($result, ' ON `'.$db_name.'`.*') ||
|
||||
str_contains($result, ' ON *.*')
|
||||
)
|
||||
str_contains($privileges, ' ON `'.$db_name.'`.*') ||
|
||||
str_contains($privileges, ' ON *.*')
|
||||
) {
|
||||
$pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', current($result)))[0]);
|
||||
$pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', $privileges))[0]);
|
||||
|
||||
if (in_array('ALL', $pieces) || in_array('ALL PRIVILEGES', $pieces)) {
|
||||
break;
|
||||
|
@ -20,35 +20,12 @@ class Update
|
||||
$database_ready = $database->isConnected() && $database->fetchNum("SHOW TABLES LIKE 'updates'");
|
||||
|
||||
// Individuazione di tutti gli aggiornamenti fisicamente presenti
|
||||
$results = [];
|
||||
|
||||
// Aggiornamenti del gestionale
|
||||
$core = (array) glob(DOCROOT.'/update/*.{php,sql}', GLOB_BRACE);
|
||||
foreach ($core as $value) {
|
||||
$infos = pathinfo($value);
|
||||
$value = str_replace('_', '.', $infos['filename']);
|
||||
|
||||
if (self::isVersion($value)) {
|
||||
$results[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$core = self::getCoreUpdates();
|
||||
// Aggiornamenti dei moduli
|
||||
$modules = (array) glob(DOCROOT.'/modules/*/update/*.{php,sql}', GLOB_BRACE);
|
||||
foreach ($modules as $value) {
|
||||
$infos = pathinfo($value);
|
||||
$modules = self::getModulesUpdates();
|
||||
|
||||
$module = end(explode('/', dirname($infos['dirname'])));
|
||||
|
||||
$value = str_replace('_', '.', $infos['filename']);
|
||||
|
||||
if (self::isVersion($value)) {
|
||||
$results[] = $module.'_'.$value;
|
||||
}
|
||||
}
|
||||
|
||||
$results = array_unique($results);
|
||||
asort($results);
|
||||
$results = array_merge($core, $modules);
|
||||
|
||||
// Individuazione di tutti gli aggiornamenti inseriti
|
||||
$updates = ($database_ready) ? $database->fetchArray('SELECT * FROM `updates`') : [];
|
||||
@ -89,6 +66,61 @@ class Update
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce l'elenco degli aggiornamento del gestionale presenti nella cartella <b>update<b>.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getCoreUpdates()
|
||||
{
|
||||
$results = [];
|
||||
|
||||
// Aggiornamenti del gestionale
|
||||
$core = (array) glob(DOCROOT.'/update/*.{php,sql}', GLOB_BRACE);
|
||||
foreach ($core as $value) {
|
||||
$infos = pathinfo($value);
|
||||
$value = str_replace('_', '.', $infos['filename']);
|
||||
|
||||
if (self::isVersion($value)) {
|
||||
$results[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$results = array_unique($results);
|
||||
asort($results);
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce l'elenco degli aggiornamento dei moduli, presenti nella cartella <b>update<b> dei singoli moduli.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getModulesUpdates()
|
||||
{
|
||||
$results = [];
|
||||
|
||||
// Aggiornamenti dei moduli
|
||||
$modules = (array) glob(DOCROOT.'/modules/*/update/*.{php,sql}', GLOB_BRACE);
|
||||
foreach ($modules as $value) {
|
||||
$infos = pathinfo($value);
|
||||
|
||||
$module = end(explode('/', dirname($infos['dirname'])));
|
||||
|
||||
$value = str_replace('_', '.', $infos['filename']);
|
||||
|
||||
if (self::isVersion($value)) {
|
||||
$results[] = $module.'_'.$value;
|
||||
}
|
||||
}
|
||||
|
||||
$results = array_unique($results);
|
||||
asort($results);
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce l'elenco degli aggiornamento incompleti o non ancora effettuati.
|
||||
*
|
||||
@ -205,7 +237,13 @@ class Update
|
||||
$result = self::getFile('VERSION');
|
||||
|
||||
if (empty($result)) {
|
||||
$database = Database::getConnection();
|
||||
|
||||
if ($database->isInstalled()) {
|
||||
$result = self::getDatabaseVersion();
|
||||
} else {
|
||||
$result = end(self::getCoreUpdates());
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
Loading…
Reference in New Issue
Block a user