mcramer
2012-09-13 65ea2ecf27418feaf7681a02d74168d0d82626fb
interface/web/sites/database_user_edit.php
@@ -40,7 +40,6 @@
require_once('../../lib/config.inc.php');
require_once('../../lib/app.inc.php');
require_once('tools.inc.php');
//* Check permissions for module
$app->auth->check_module_permissions('sites');
@@ -60,9 +59,9 @@
       */
      
      //* Get the database user prefix
      $app->uses('getconf');
      $app->uses('getconf,tools_sites');
      $global_config = $app->getconf->get_global_config('sites');
      $dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
      $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
      
        if ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
         // Get the limits of the client
@@ -125,9 +124,9 @@
      global $app, $conf, $interfaceConf;
      //* Get the database user prefix
      $app->uses('getconf');
      $app->uses('getconf,tools_sites');
      $global_config = $app->getconf->get_global_config('sites');
      $dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
      $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
      //* Database username shall not be empty
      if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'<br />';
@@ -136,7 +135,7 @@
      
      //* Check database user against blacklist
      $dbuser_blacklist = array($conf['db_user'],'mysql','root');
      if(in_array($dbname_prefix . $this->dataRecord['database_user'],$dbname_blacklist)) {
      if(in_array($dbuser_prefix . $this->dataRecord['database_user'],$dbuser_blacklist)) {
         $app->tform->errorMessage .= $app->lng('Database user not allowed.').'<br />';
      }
      
@@ -146,6 +145,8 @@
         $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16);
      }
      
        $this->dataRecord['server_id'] = $conf['server_id'];
      parent::onBeforeUpdate();
   }
@@ -156,15 +157,15 @@
      if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'<br />';
      //* Get the database name and database user prefix
      $app->uses('getconf');
      $app->uses('getconf,tools_sites');
      $global_config = $app->getconf->get_global_config('sites');
      $dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
      $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
      
      if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}',$dbuser_prefix . $this->dataRecord['database_user'],$app->tform->wordbook["database_user_error_len"]).'<br />';
      
      //* Check database user against blacklist
      $dbuser_blacklist = array($conf['db_user'],'mysql','root');
      if(in_array($dbname_prefix . $this->dataRecord['database_user'],$dbname_blacklist)) {
      if(is_array($dbuser_blacklist) && in_array($dbuser_prefix . $this->dataRecord['database_user'],$dbuser_blacklist)) {
         $app->tform->errorMessage .= $app->lng('Database user not allowed.').'<br />';
      }
@@ -174,6 +175,8 @@
         $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16);
      }
      
        $this->dataRecord['server_id'] = $conf['server_id'];
      parent::onBeforeInsert();
   }
@@ -181,11 +184,11 @@
      global $app, $conf;
      
      if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) {
         $client_group_id = intval($this->dataRecord["client_group_id"]);
         $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
         $app->db->query("UPDATE web_database_user SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE database_user_id = ".$this->id);
      }
      if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) {
         $client_group_id = intval($this->dataRecord["client_group_id"]);
         $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
         $app->db->query("UPDATE web_database_user SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE database_user_id = ".$this->id);
      }
   }
@@ -194,14 +197,23 @@
      global $app, $conf;
      if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) {
         $client_group_id = intval($this->dataRecord["client_group_id"]);
         $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
         $app->db->query("UPDATE web_database_user SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE database_user_id = ".$this->id);
      }
      if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) {
         $client_group_id = intval($this->dataRecord["client_group_id"]);
         $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]);
         $app->db->query("UPDATE web_database_user SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE database_user_id = ".$this->id);
      }
        $old_rec = $app->db->queryOneRecord("SELECT * FROM web_database_user WHERE database_user_id = '".$this->id."'");
        $records = $app->db->queryAllRecords("SELECT DISTINCT server_id FROM web_database WHERE database_user_id = '".$app->functions->intval($this->id)."' UNION SELECT DISTINCT server_id FROM web_database WHERE database_ro_user_id = '".$app->functions->intval($this->id)."'");
        foreach($records as $rec) {
            $new_rec = $this->dataRecord;
            $new_rec['server_id'] = $rec['server_id'];
            $app->db->datalogSave('web_database_user', 'UPDATE', 'database_user_id', $this->id, $old_rec, $new_rec);
        }
        unset($new_rec);
   }
}