Fix sul test del database

This commit is contained in:
Thomas Zilio 2018-01-30 20:05:12 +01:00
parent 29957f64f5
commit ef36f98f8e
1 changed files with 18 additions and 7 deletions

View File

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