@@ -92,6 +92,9 @@ function process_host_list($action, $database_name, $database_user, $database_pa
9292 $ result ->free ();
9393 }
9494 }
95+
96+ $ app ->log ("Calling $ action for $ database_name with access $ user_access_mode and hosts " . implode (', ' , $ host_list ), LOGLEVEL_DEBUG );
97+
9598 // loop through hostlist
9699 foreach ($ host_list as $ db_host ) {
97100 $ db_host = trim ($ db_host );
@@ -112,7 +115,10 @@ function process_host_list($action, $database_name, $database_user, $database_pa
112115 $ valid = false ;
113116 }
114117
115- if ($ valid == false ) continue ;
118+ if ($ valid == false ) {
119+ $ app ->log ("Invalid host " . $ db_host . " for GRANT to " . $ database_name , LOGLEVEL_DEBUG );
120+ continue ;
121+ }
116122
117123 $ grants = 'ALL ' ;
118124 if ($ user_access_mode == 'r ' ) $ grants = 'SELECT ' ;
@@ -254,7 +260,7 @@ function db_update($event_name, $data) {
254260 $ app ->log ('Unable to connect to the database: ' .$ link ->connect_error , LOGLEVEL_ERROR );
255261 return ;
256262 }
257-
263+
258264 // get the users for this database
259265 $ db_user = $ app ->db ->queryOneRecord ("SELECT `database_user`, `database_password` FROM `web_database_user` WHERE `database_user_id` = ? " , $ data ['new ' ]['database_user_id ' ]);
260266 $ old_db_user = $ app ->db ->queryOneRecord ("SELECT `database_user`, `database_password` FROM `web_database_user` WHERE `database_user_id` = ? " , $ data ['old ' ]['database_user_id ' ]);
@@ -406,32 +412,32 @@ function db_update($event_name, $data) {
406412 if ($ db_ro_user ['database_user ' ] == 'root ' ) $ app ->log ('User root not allowed for Client databases ' , LOGLEVEL_WARNING );
407413 else $ this ->process_host_list ('GRANT ' , $ data ['new ' ]['database_name ' ], $ db_ro_user ['database_user ' ], $ db_ro_user ['database_password ' ], $ host_list , $ link , '' , 'r ' );
408414 }
409- } else if ($ data ['new ' ]['active ' ] == 'n ' && $ data ['old ' ]['active ' ] == 'y ' ) { // revoke database user, if inactive
410- if ($ old_db_user ) {
411- if ($ old_db_user ['database_user ' ] == 'root ' ){
412- $ app ->log ('User root not allowed for Client databases ' , LOGLEVEL_WARNING );
413- } else {
414- // Find out users to drop and users to revoke
415- $ drop_or_revoke_user = $ this ->drop_or_revoke_user ($ data ['old ' ]['database_id ' ], $ data ['old ' ]['database_user_id ' ], $ old_host_list );
416- if ($ drop_or_revoke_user ['drop_hosts ' ] != '' ) $ this ->process_host_list ('DROP ' , $ data ['old ' ]['database_name ' ], $ old_db_user ['database_user ' ], $ old_db_user ['database_password ' ], $ drop_or_revoke_user ['drop_hosts ' ], $ link );
417- if ($ drop_or_revoke_user ['revoke_hosts ' ] != '' ) $ this ->process_host_list ('REVOKE ' , $ data ['old ' ]['database_name ' ], $ old_db_user ['database_user ' ], $ old_db_user ['database_password ' ], $ drop_or_revoke_user ['revoke_hosts ' ], $ link );
418- }
419-
415+ } elseif ($ data ['new ' ]['active ' ] == 'n ' && $ data ['old ' ]['active ' ] == 'y ' ) { // revoke database user, if inactive
416+ if ($ old_db_user ) {
417+ if ($ old_db_user ['database_user ' ] == 'root ' ){
418+ $ app ->log ('User root not allowed for Client databases ' , LOGLEVEL_WARNING );
419+ } else {
420+ // Find out users to drop and users to revoke
421+ $ drop_or_revoke_user = $ this ->drop_or_revoke_user ($ data ['old ' ]['database_id ' ], $ data ['old ' ]['database_user_id ' ], $ old_host_list );
422+ if ($ drop_or_revoke_user ['drop_hosts ' ] != '' ) $ this ->process_host_list ('DROP ' , $ data ['old ' ]['database_name ' ], $ old_db_user ['database_user ' ], $ old_db_user ['database_password ' ], $ drop_or_revoke_user ['drop_hosts ' ], $ link );
423+ if ($ drop_or_revoke_user ['revoke_hosts ' ] != '' ) $ this ->process_host_list ('REVOKE ' , $ data ['old ' ]['database_name ' ], $ old_db_user ['database_user ' ], $ old_db_user ['database_password ' ], $ drop_or_revoke_user ['revoke_hosts ' ], $ link );
420424 }
421- if ($ old_db_ro_user && $ data ['old ' ]['database_user_id ' ] != $ data ['old ' ]['database_ro_user_id ' ]) {
422- if ($ old_db_ro_user ['database_user ' ] == 'root ' ){
423- $ app ->log ('User root not allowed for Client databases ' , LOGLEVEL_WARNING );
424- } else {
425- // Find out users to drop and users to revoke
426- $ drop_or_revoke_user = $ this ->drop_or_revoke_user ($ data ['old ' ]['database_id ' ], $ data ['old ' ]['database_ro_user_id ' ], $ old_host_list );
427- if ($ drop_or_revoke_user ['drop_hosts ' ] != '' ) $ this ->process_host_list ('DROP ' , $ data ['old ' ]['database_name ' ], $ old_db_ro_user ['database_user ' ], $ old_db_ro_user ['database_password ' ], $ drop_or_revoke_user ['drop_hosts ' ], $ link );
428- if ($ drop_or_revoke_user ['revoke_hosts ' ] != '' ) $ this ->process_host_list ('REVOKE ' , $ data ['old ' ]['database_name ' ], $ old_db_ro_user ['database_user ' ], $ old_db_ro_user ['database_password ' ], $ drop_or_revoke_user ['revoke_hosts ' ], $ link );
429- }
425+
426+ }
427+ if ($ old_db_ro_user && $ data ['old ' ]['database_user_id ' ] != $ data ['old ' ]['database_ro_user_id ' ]) {
428+ if ($ old_db_ro_user ['database_user ' ] == 'root ' ){
429+ $ app ->log ('User root not allowed for Client databases ' , LOGLEVEL_WARNING );
430+ } else {
431+ // Find out users to drop and users to revoke
432+ $ drop_or_revoke_user = $ this ->drop_or_revoke_user ($ data ['old ' ]['database_id ' ], $ data ['old ' ]['database_ro_user_id ' ], $ old_host_list );
433+ if ($ drop_or_revoke_user ['drop_hosts ' ] != '' ) $ this ->process_host_list ('DROP ' , $ data ['old ' ]['database_name ' ], $ old_db_ro_user ['database_user ' ], $ old_db_ro_user ['database_password ' ], $ drop_or_revoke_user ['drop_hosts ' ], $ link );
434+ if ($ drop_or_revoke_user ['revoke_hosts ' ] != '' ) $ this ->process_host_list ('REVOKE ' , $ data ['old ' ]['database_name ' ], $ old_db_ro_user ['database_user ' ], $ old_db_ro_user ['database_password ' ], $ drop_or_revoke_user ['revoke_hosts ' ], $ link );
430435 }
431- // Database is not active, so stop processing here
432- $ link ->close ();
433- return ;
434436 }
437+ // Database is not active, so stop processing here
438+ $ link ->close ();
439+ return ;
440+ }
435441
436442 //* selected Users have changed
437443 if ($ data ['new ' ]['database_user_id ' ] != $ data ['old ' ]['database_user_id ' ]) {
0 commit comments