Skip to content

Commit abad786

Browse files
committed
Fixed enable / disable funnction for database access
1 parent f98a228 commit abad786

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

server/plugins-available/mysql_clientdb_plugin.inc.php

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,19 @@ function db_insert($event_name,$data) {
8484
$app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR);
8585
}
8686

87-
// Create the database user
88-
if($data["new"]["remote_access"] == 'y') {
89-
$db_host = '%';
90-
} else {
91-
$db_host = 'localhost';
87+
// Create the database user if database is active
88+
if($data["new"]["active"] == 'y') {
89+
90+
if($data["new"]["remote_access"] == 'y') {
91+
$db_host = '%';
92+
} else {
93+
$db_host = 'localhost';
94+
}
95+
96+
mysql_query("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"])."';",$link);
97+
//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"])."';";
9298
}
9399

94-
mysql_query("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"])."';",$link);
95-
//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"])."';";
96-
97100
mysql_query("FLUSH PRIVILEGES;",$link);
98101
mysql_close($link);
99102
}
@@ -107,14 +110,40 @@ function db_update($event_name,$data) {
107110
$app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR);
108111
return;
109112
}
110-
113+
111114
//* Connect to the database
112115
$link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password);
113116
if (!$link) {
114117
$app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR);
115118
return;
116119
}
117120

121+
// Create the database user if database was disabled before
122+
if($data["new"]["active"] == 'y' && $data["old"]["active"] == 'n') {
123+
124+
if($data["new"]["remote_access"] == 'y') {
125+
$db_host = '%';
126+
} else {
127+
$db_host = 'localhost';
128+
}
129+
130+
mysql_query("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"])."';",$link);
131+
//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"])."';";
132+
}
133+
134+
// Remove database user, if inactive
135+
if($data["new"]["active"] == 'n' && $data["old"]["active"] == 'y') {
136+
137+
if($data["old"]["remote_access"] == 'y') {
138+
$db_host = '%';
139+
} else {
140+
$db_host = 'localhost';
141+
}
142+
143+
mysql_query("REVOKE 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"])."';",$link);
144+
//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"])."';";
145+
}
146+
118147
//* Rename User
119148
if($data["new"]["database_user"] != $data["old"]["database_user"]) {
120149
mysql_query("RENAME USER '".mysql_real_escape_string($data["old"]["database_user"])."' TO '".mysql_real_escape_string($data["new"]["database_user"])."'",$link);

0 commit comments

Comments
 (0)