diff --git a/include/configuration.php b/include/configuration.php index 8e06cd50f..8c11f3b07 100644 --- a/include/configuration.php +++ b/include/configuration.php @@ -32,7 +32,6 @@ if (post('db_host') !== null) { // Test della configurazione if (post('test') !== null) { ob_end_clean(); - $state = 2; if ($dbo->isConnected()) { $requirements = [ @@ -58,22 +57,34 @@ if (post('db_host') !== null) { ) { $pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', $privileges))[0]); + // Permessi generici sul database if (in_array('ALL', $pieces) || in_array('ALL PRIVILEGES', $pieces)) { + $requirements = []; break; } + // Permessi specifici sul database foreach ($requirements as $key => $value) { - if (!in_array($value, $pieces)) { - $state = 1; - - break 2; - } else { + if (in_array($value, $pieces)) { unset($requirements[$key]); } } } } - } else { + + // Permessi insufficienti + if (!empty($requirements)) { + $state = 1; + } + + // Permessi completi + else { + $state = 2; + } + } + + // Connessione fallita + else { $state = 0; }