tbrehm
2010-09-17 06ce83dc7e1c07f184a58c978c8766915de4d591
server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -85,7 +85,9 @@
          
          // check if entry is valid ip address
          $valid = true;
          if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $db_host)) {
        if($db_host == "%") {
           $valid = true;
        } elseif(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $db_host)) {
              $groups = explode(".", $db_host);
              foreach($groups as $group){
                if($group<0 OR $group>255)
@@ -121,6 +123,11 @@
            $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR);
            return;
         }
         if($data["new"]["database_user"] == 'root') {
            $app->log('User root not allowed for Client databases',LOGLEVEL_WARNING);
            return;
         }
      
         //* Connect to the database
         $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password);
@@ -140,7 +147,7 @@
         if (mysql_query('CREATE DATABASE '.mysql_real_escape_string($data["new"]["database_name"]).$query_charset_table,$link)) {
            $app->log('Created MySQL database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG);
         } else {
            $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR);
            $app->log('Unable to create the database'.mysql_error($link),LOGLEVEL_WARNING);
         }
         
         // Create the database user if database is active
@@ -167,6 +174,11 @@
      if($data["new"]["type"] == 'mysql') {
         if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) {
            $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR);
            return;
         }
         if($data["new"]["database_user"] == 'root') {
            $app->log('User root not allowed for Client databases',LOGLEVEL_WARNING);
            return;
         }
         
@@ -272,20 +284,20 @@
             if($this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link)) {
           $app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG);
            } else {
               $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR);
               $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_WARNING);
            }
         }
         $db_host = 'localhost';
         if(mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link)) {
            $app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG);
         } else {
            $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR);
            $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_WARNING);
         }
         
         if(mysql_query('DROP DATABASE '.mysql_real_escape_string($data["old"]["database_name"],$link),$link)) {
            $app->log('Dropping mysql database: '.$data["old"]["database_name"],LOGLEVEL_DEBUG);
         } else {
            $app->log('Error while dropping mysql database: '.$data["old"]["database_name"].' '.mysql_error($link),LOGLEVEL_ERROR);
            $app->log('Error while dropping mysql database: '.$data["old"]["database_name"].' '.mysql_error($link),LOGLEVEL_WARNING);
         }
         
         mysql_query("FLUSH PRIVILEGES;",$link);