Skip to content

Commit 2f7e607

Browse files
author
Marius Cramer
committed
- Fixes: FS#3693 - sites_database_add doesn't set the sys_groupid parameter
1 parent 58fb006 commit 2f7e607

File tree

2 files changed

+14
-153
lines changed

2 files changed

+14
-153
lines changed

interface/lib/classes/sites_database_plugin.inc.php

Lines changed: 10 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -33,145 +33,28 @@ class sites_database_plugin {
3333
public function processDatabaseInsert($form_page) {
3434
global $app;
3535

36-
/*if($form_page->dataRecord["parent_domain_id"] > 0) {
37-
$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"]));
38-
39-
//* The Database user shall be owned by the same group then the website
40-
$sys_groupid = $web['sys_groupid'];
41-
} else {
42-
$sys_groupid = $form_page->dataRecord['sys_groupid'];
43-
}
44-
45-
46-
if($form_page->dataRecord['database_user_id']) {
47-
// check if there has already been a database on this server with that user
48-
$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']) . "')");
49-
50-
if($check && $check['cnt'] < 1) {
51-
// we need to make a datalog insert for the database users that are connected to this database
52-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'");
53-
if($db_user) {
54-
$db_user['server_id'] = $form_page->dataRecord['server_id'];
55-
$app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user);
56-
}
57-
}
58-
}
59-
60-
if($form_page->dataRecord['database_ro_user_id']) {
61-
// check if there has already been a database on this server with that user
62-
$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']) . "')");
63-
64-
if($check && $check['cnt'] < 1) {
65-
// we need to make a datalog insert for the database users that are connected to this database
66-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'");
67-
if($db_user) {
68-
$db_user['server_id'] = $form_page->dataRecord['server_id'];
69-
$app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user);
70-
}
71-
}
72-
}*/
36+
$this->processDatabaseUpdate($form_page);
7337
}
7438

7539
public function processDatabaseUpdate($form_page) {
7640
global $app;
7741

78-
/*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($form_page->id));
79-
80-
if($form_page->dataRecord["parent_domain_id"] > 0) {
81-
$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"]));
82-
83-
//* The Database user shall be owned by the same group then the website
84-
$sys_groupid = $web['sys_groupid'];
85-
} else {
86-
$sys_groupid = $form_page->dataRecord['sys_groupid'];
87-
}
88-
89-
// check if database user has changed
90-
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']) {
91-
// check if any database on the server still uses this one
92-
$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) . "'");
93-
if($check['cnt'] < 1) {
94-
// send a datalog delete
95-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'");
96-
if($db_user) {
97-
$db_user['server_id'] = $form_page->dataRecord['server_id'];
98-
$app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array());
99-
}
100-
}
101-
}
102-
// check if readonly database user has changed
103-
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']) {
104-
// check if any database on the server still uses this one
105-
$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) . "'");
106-
if($check['cnt'] < 1) {
107-
// send a datalog delete
108-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'");
109-
if($db_user) {
110-
$db_user['server_id'] = $form_page->dataRecord['server_id'];
111-
$app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array());
112-
}
113-
}
114-
}*/
115-
116-
/*if($form_page->dataRecord['database_user_id']) {
117-
// check if there has already been a database on this server with that user
118-
$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']) . "')");
119-
120-
if($check && $check['cnt'] < 1) {
121-
// we need to make a datalog insert for the database users that are connected to this database
122-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_user_id']) . "'");
123-
if($db_user) {
124-
$db_user['server_id'] = $form_page->dataRecord['server_id'];
125-
$app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user);
126-
}
127-
}
128-
}
129-
130-
if($form_page->dataRecord['database_ro_user_id']) {
131-
// check if there has already been a database on this server with that user
132-
$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']) . "')");
42+
if($form_page->dataRecord["parent_domain_id"] > 0) {
43+
$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($form_page->dataRecord["parent_domain_id"]));
13344

134-
if($check && $check['cnt'] < 1) {
135-
// we need to make a datalog insert for the database users that are connected to this database
136-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($form_page->dataRecord['database_ro_user_id']) . "'");
137-
if($db_user) {
138-
$db_user['server_id'] = $form_page->dataRecord['server_id'];
139-
$app->db->datalogSave('web_database_user', 'INSERT', 'database_user_id', $db_user['database_user_id'], array(), $db_user);
140-
}
141-
}
142-
}*/
45+
//* The Database user shall be owned by the same group then the website
46+
$sys_groupid = $app->functions->intval($web['sys_groupid']);
47+
$backup_interval = $app->db->quote($web['backup_interval']);
48+
$backup_copies = $app->functions->intval($web['backup_copies']);
14349

50+
$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$form_page->id;
51+
$app->db->query($sql);
52+
}
14453
}
14554

14655
public function processDatabaseDelete($primary_id) {
14756
global $app;
14857

149-
/*$old_record = $app->db->queryOneRecord('SELECT * FROM `web_database` WHERE `database_id` = ' . $app->functions->intval($primary_id));
150-
if($old_record['database_user_id']) {
151-
// check if any database on the server still uses this one
152-
$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) . "'");
153-
if($check['cnt'] < 1) {
154-
// send a datalog delete
155-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_user_id']) . "'");
156-
if($db_user) {
157-
$db_user['server_id'] = $old_record['server_id'];
158-
$app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array());
159-
}
160-
}
161-
}
162-
if($old_record['database_ro_user_id']) {
163-
// check if any database on the server still uses this one
164-
$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) . "'");
165-
if($check['cnt'] < 1) {
166-
// send a datalog delete
167-
$db_user = $app->db->queryOneRecord("SELECT * FROM `web_database_user` WHERE `database_user_id` = '" . $app->functions->intval($old_record['database_ro_user_id']) . "'");
168-
if($db_user) {
169-
$db_user['server_id'] = $old_record['server_id'];
170-
$app->db->datalogSave('web_database_user', 'DELETE', 'database_user_id', $db_user['database_user_id'], $db_user, array());
171-
}
172-
}
173-
}*/
174-
17558
}
17659

17760
}

interface/web/sites/database_edit.php

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,6 @@ function onUpdateSave($sql) {
405405
global $app;
406406
if(!empty($sql) && !$app->tform->isReadonlyTab($app->tform->getCurrentTab(), $this->id)) {
407407

408-
$app->uses('sites_database_plugin');
409-
//$app->sites_database_plugin->processDatabaseUpdate($this);
410-
411408
$app->db->query($sql);
412409
if($app->db->errorMessage != '') die($app->db->errorMessage);
413410
}
@@ -416,34 +413,15 @@ function onUpdateSave($sql) {
416413
function onAfterInsert() {
417414
global $app, $conf;
418415

419-
if($this->dataRecord["parent_domain_id"] > 0) {
420-
$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"]));
421-
422-
//* The Database user shall be owned by the same group then the website
423-
$sys_groupid = $app->functions->intval($web['sys_groupid']);
424-
$backup_interval = $app->db->quote($web['backup_interval']);
425-
$backup_copies = $app->functions->intval($web['backup_copies']);
426-
427-
$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id;
428-
$app->db->query($sql);
429-
}
416+
$app->uses('sites_database_plugin');
417+
$app->sites_database_plugin->processDatabaseInsert($this);
430418
}
431419

432420
function onAfterUpdate() {
433421
global $app, $conf;
434422

435-
if($this->dataRecord["parent_domain_id"] > 0) {
436-
$web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["parent_domain_id"]));
437-
438-
//* The Database user shall be owned by the same group then the website
439-
$sys_groupid = $app->functions->intval($web['sys_groupid']);
440-
$backup_interval = $app->db->quote($web['backup_interval']);
441-
$backup_copies = $app->functions->intval($web['backup_copies']);
442-
443-
$sql = "UPDATE web_database SET sys_groupid = '$sys_groupid', backup_interval = '$backup_interval', backup_copies = '$backup_copies' WHERE database_id = ".$this->id;
444-
$app->db->query($sql);
445-
}
446-
423+
$app->uses('sites_database_plugin');
424+
$app->sites_database_plugin->processDatabaseUpdate($this);
447425
}
448426

449427
}

0 commit comments

Comments
 (0)