From 2f7e607a9d5331c5d5f56dec8bc167907a08ddad Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Fri, 10 Oct 2014 13:24:53 +0200 Subject: [PATCH] - Fixes: FS#3693 - sites_database_add doesn't set the sys_groupid parameter --- .../lib/classes/sites_database_plugin.inc.php | 137 ++---------------- interface/web/sites/database_edit.php | 30 +--- 2 files changed, 14 insertions(+), 153 deletions(-) diff --git a/interface/lib/classes/sites_database_plugin.inc.php b/interface/lib/classes/sites_database_plugin.inc.php index d255fdca85..bf53c61fad 100644 --- a/interface/lib/classes/sites_database_plugin.inc.php +++ b/interface/lib/classes/sites_database_plugin.inc.php @@ -33,145 +33,28 @@ class sites_database_plugin { public function processDatabaseInsert($form_page) { global $app; - /*if($form_page->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - } else { - $sys_groupid = $form_page->dataRecord['sys_groupid']; - } - - - if($form_page->dataRecord['database_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "')"); - - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - } - - if($form_page->dataRecord['database_ro_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "')"); - - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - }*/ + $this->processDatabaseUpdate($form_page); } public function processDatabaseUpdate($form_page) { global $app; - /*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($form_page->id)); - - if($form_page->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - } else { - $sys_groupid = $form_page->dataRecord['sys_groupid']; - } - - // check if database user has changed - if($old_record['database_user_id'] && $old_record['database_user_id'] != $form_page->dataRecord['database_user_id'] && $old_record['database_user_id'] != $form_page->dataRecord['database_ro_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "') AND `database_id` != '" . $app->functions->intval($form_page->id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - } - // check if readonly database user has changed - if($old_record['database_ro_user_id'] && $old_record['database_ro_user_id'] != $form_page->dataRecord['database_ro_user_id'] && $old_record['database_ro_user_id'] != $form_page->dataRecord['database_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "') AND `database_id` != '" . $app->functions->intval($form_page->id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - }*/ - - /*if($form_page->dataRecord['database_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "')"); - - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - } - - if($form_page->dataRecord['database_ro_user_id']) { - // check if there has already been a database on this server with that user - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($form_page->dataRecord['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "')"); + if($form_page->dataRecord["parent_domain_id"] > 0) { + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"])); - if($check && $check['cnt'] < 1) { - // we need to make a datalog insert for the database users that are connected to this database - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $form_page->dataRecord['server_id']; - $app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user); - } - } - }*/ + //* The Database user shall be owned by the same group then the website + $sys_groupid = $app->functions->intval($web['sys_groupid']); + $backup_interval = $app->db->quote($web['backup_interval']); + $backup_copies = $app->functions->intval($web['backup_copies']); + $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$form_page->id; + $app->db->query($sql); + } } public function processDatabaseDelete($primary_id) { global $app; - /*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($primary_id)); - if($old_record['database_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($old_record['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "') AND `database_id` != '" . $app->functions->intval($primary_id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $old_record['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - } - if($old_record['database_ro_user_id']) { - // check if any database on the server still uses this one - $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `server_id` = '" . $app->functions->intval($old_record['server_id']) . "' AND (`database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "' OR `database_ro_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "') AND `database_id` != '" . $app->functions->intval($primary_id) . "'"); - if($check['cnt'] < 1) { - // send a datalog delete - $db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'"); - if($db_user) { - $db_user['server_id'] = $old_record['server_id']; - $app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array()); - } - } - }*/ - } } diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 0f2f5f227d..48540e888e 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -405,9 +405,6 @@ class page_action extends tform_actions { global $app; if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab(), $this->id)) { - $app->uses('sites_database_plugin'); - //$app->sites_database_plugin->processDatabaseUpdate($this); - $app->db->query($sql); if($app->db->errorMessage != '') die($app->db->errorMessage); } @@ -416,34 +413,15 @@ class page_action extends tform_actions { function onAfterInsert() { global $app, $conf; - if($this->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $app->functions->intval($web['sys_groupid']); - $backup_interval = $app->db->quote($web['backup_interval']); - $backup_copies = $app->functions->intval($web['backup_copies']); - - $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id; - $app->db->query($sql); - } + $app->uses('sites_database_plugin'); + $app->sites_database_plugin->processDatabaseInsert($this); } function onAfterUpdate() { global $app, $conf; - if($this->dataRecord["parent_domain_id"] > 0) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"])); - - //* The Database user shall be owned by the same group then the website - $sys_groupid = $app->functions->intval($web['sys_groupid']); - $backup_interval = $app->db->quote($web['backup_interval']); - $backup_copies = $app->functions->intval($web['backup_copies']); - - $sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id; - $app->db->query($sql); - } - + $app->uses('sites_database_plugin'); + $app->sites_database_plugin->processDatabaseUpdate($this); } } -- GitLab