Skip to content

Commit eece366

Browse files
committed
- Fixed problem with renaming database passwords and database users.
1 parent 766a45b commit eece366

File tree

1 file changed

+35
-39
lines changed

1 file changed

+35
-39
lines changed

server/plugins-available/mysql_clientdb_plugin.inc.php

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,12 @@ function db_insert($event_name,$data) {
103103
if($data["new"]["remote_access"] == 'y') {
104104
$db_host = '%';
105105
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
106-
$db_host = 'localhost';
107-
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
108-
} else {
109-
$db_host = 'localhost';
110-
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
111106
}
112107

108+
$db_host = 'localhost';
109+
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
110+
111+
113112
}
114113

115114
mysql_query("FLUSH PRIVILEGES;",$link);
@@ -139,13 +138,11 @@ function db_update($event_name,$data) {
139138
if($data["new"]["remote_access"] == 'y') {
140139
$db_host = '%';
141140
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
142-
$db_host = 'localhost';
143-
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
144-
} else {
145-
$db_host = 'localhost';
146-
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
147141
}
148142

143+
$db_host = 'localhost';
144+
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
145+
149146
// mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
150147
//echo "GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"]).".* TO '".mysql_real_escape_string($data["new"]["database_user"])."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"])."';";
151148
}
@@ -155,55 +152,52 @@ function db_update($event_name,$data) {
155152

156153
if($data["old"]["remote_access"] == 'y') {
157154
$db_host = '%';
158-
} else {
159-
$db_host = 'localhost';
155+
mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link);
160156
}
161157

162-
mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link);
158+
$db_host = 'localhost';
159+
mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link);
160+
161+
162+
//mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link);
163163
}
164164

165165
//* Rename User
166166
if($data["new"]["database_user"] != $data["old"]["database_user"]) {
167-
mysql_query("RENAME USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."' TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'",$link);
167+
$db_host = 'localhost';
168+
mysql_query("RENAME USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host' TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host'",$link);
169+
if($data["old"]["remote_access"] == 'y') {
170+
$db_host = '%';
171+
mysql_query("RENAME USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host' TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host'",$link);
172+
}
168173
$app->log('Renaming mysql user: '.$data["old"]["database_user"].' to '.$data["new"]["database_user"],LOGLEVEL_DEBUG);
169174
}
170175

171176
//* Remote access option has changed.
172177
if($data["new"]["remote_access"] != $data["old"]["remote_access"]) {
173178

174179
//* revoke old priveliges
175-
mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link);
180+
//mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link);
176181

177182
//* set new priveliges
178-
if($data["new"]["remote_access"] == 'y') {
179-
$db_host = '%';
180-
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
181-
$db_host = 'localhost';
183+
$db_host = '%';
184+
if($data["new"]["remote_access"] == 'y') {
182185
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
183186
} else {
184-
$db_host = 'localhost';
185-
mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link);
187+
mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link);
186188
}
187189
$app->log('Changing mysql remote access priveliges for database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG);
188190
}
189191

190-
//* Get the db host setting for the access priveliges
191-
if($data["new"]["remote_access"] == 'y') {
192-
$db_host = '%';
193-
} else {
194-
$db_host = 'localhost';
195-
}
196-
197-
/*
198-
//* Rename database
199-
if($data["new"]["database_name"] != $data["old"]["database_name"]) {
200-
mysql_query("",$link);
201-
}
202-
*/
203-
204192
//* Change password
205193
if($data["new"]["database_password"] != $data["old"]["database_password"]) {
194+
$db_host = 'localhost';
206195
mysql_query("SET PASSWORD FOR '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' = PASSWORD('".mysql_real_escape_string($data["new"]["database_password"],$link)."');",$link);
196+
197+
if($data["new"]["remote_access"] == 'y') {
198+
$db_host = '%';
199+
mysql_query("SET PASSWORD FOR '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' = PASSWORD('".mysql_real_escape_string($data["new"]["database_password"],$link)."');",$link);
200+
}
207201
$app->log('Changing mysql user password for: '.$data["new"]["database_user"],LOGLEVEL_DEBUG);
208202
}
209203

@@ -232,10 +226,13 @@ function db_delete($event_name,$data) {
232226
//* Get the db host setting for the access priveliges
233227
if($data["old"]["remote_access"] == 'y') {
234228
$db_host = '%';
235-
} else {
236-
$db_host = 'localhost';
229+
if(mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link)) {
230+
$app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG);
231+
} else {
232+
$app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR);
233+
}
237234
}
238-
235+
$db_host = 'localhost';
239236
if(mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link)) {
240237
$app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG);
241238
} else {
@@ -248,7 +245,6 @@ function db_delete($event_name,$data) {
248245
$app->log('Error while dropping mysql database: '.$data["old"]["database_name"].' '.mysql_error($link),LOGLEVEL_ERROR);
249246
}
250247

251-
252248
mysql_query("FLUSH PRIVILEGES;",$link);
253249
mysql_close($link);
254250
}

0 commit comments

Comments
 (0)