} $newadmin_path = $_REQUEST["newadmin_path"] . "/" . $_REQUEST["newadmin_login"]; if ($conf_demo_version == "no") { $oldumask = umask(0); if (!file_exists($newadmin_path)) { mkdir("{$newadmin_path}", 0750, 1); $console .= "mkdir -p {$newadmin_path};<br>"; } umask($oldumask); } // Add user in database if ($commit_flag != "no") { $adm_query = "INSERT INTO {$pro_mysql_admin_table}\n(adm_login ,adm_pass ,path )VALUES\n('" . $_REQUEST["newadmin_login"] . "', '" . $_REQUEST["newadmin_pass"] . "','{$newadmin_path}') "; mysql_query($adm_query) or die("Cannot execute query \"{$adm_query}\" ! line: " . __LINE__ . " file: " . __FILE__ . " sql said: " . mysql_error()); } else { echo $submit_err; } } // action=delete_waiting_user&reqadm_login=tom if (isset($_REQUEST["action"]) && $_REQUEST["action"] == "delete_waiting_user") { $q = "DELETE FROM {$pro_mysql_new_admin_table} WHERE id='" . $_REQUEST["reqadm_id"] . "';"; mysql_query($q) or die("Cannot execute query \"{$q}\" ! line: " . __LINE__ . " file: " . __FILE__ . " sql said: " . mysql_error()); } // action=valid_waiting_user&reqadm_login=tom if (isset($_REQUEST["action"]) && $_REQUEST["action"] == "valid_waiting_user") { validateWaitingUser($_REQUEST["reqadm_id"]); triggerDomainListUpdate(); } if (isset($_REQUEST["delete_admin_user"]) && $_REQUEST["delete_admin_user"] != "") { DTCdeleteAdmin($_REQUEST["delete_admin_user"]); }
function recursiveDeleteAdmin($adm_login) { global $pro_mysql_admin_table; echo "<!-- recursiveDeleteAdmin({$adm_login}) -->"; $q = "SELECT * FROM {$pro_mysql_admin_table} WHERE adm_login='******';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said " . mysql_error()); $a = mysql_fetch_array($r); // Admin has children if ($a["ob_head"] != "" || $a["ob_tail"] != "") { if ($a["ob_head"] == "" || $a["ob_tail"] == "") { die("ob_head and ob_tail don't patch: sub-admin tree is broken line " . __LINE__ . " file " . __FILE__ . ", please contact system administrator!"); } $next = $a["ob_head"]; // Get a list of all children of the admin while ($next != $adm_login) { $child_list[] = $next; $q = "SELECT ob_next FROM {$pro_mysql_admin_table} WHERE adm_login='******';"; $r = mysql_query($q) or die("Cannot query {$q} line " . __LINE__ . " file " . __FILE__ . " sql said " . mysql_error()); $a = mysql_fetch_array($r); $next = $a["ob_next"]; } // Then delete them all calling recurtion $nbr_child = sizeof($child_list); for ($i = 0; $i < $nbr_child; $i++) { recursiveDeleteAdmin($child_list[$i]); } } // Now do the real delete DTCdeleteAdmin($adm_login); }