summaryrefslogtreecommitdiffstats
path: root/src/modules/UserBackendMysql
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/UserBackendMysql')
-rw-r--r--src/modules/UserBackendMysql/UserBackendMysql.cpp188
1 files changed, 95 insertions, 93 deletions
diff --git a/src/modules/UserBackendMysql/UserBackendMysql.cpp b/src/modules/UserBackendMysql/UserBackendMysql.cpp
index ebf86d5..3ef44d1 100644
--- a/src/modules/UserBackendMysql/UserBackendMysql.cpp
+++ b/src/modules/UserBackendMysql/UserBackendMysql.cpp
@@ -36,111 +36,113 @@ namespace UserBackendMysql {
const std::string UserBackendMysql::name("UserBackendMysql");
-bool UserBackendMysql::handleConfigEntry(const Core::ConfigEntry &entry, bool handled) {
- if(handled)
+bool UserBackendMysql::handleConfigEntry(const Core::ConfigEntry &entry, bool /*handled*/) {
+ if(!entry[0].getKey().matches("UserManager"))
return false;
- if(entry[0].getKey().matches("UserBackendMysql")) {
- if(entry[1].getKey().matches("Host")) {
- if(entry[2].empty())
- host = entry[1][0];
+ if(entry[1].empty())
+ return true;
+
+ if(!entry[1].getKey().matches("Mysql"))
+ return false;
+
+ if(entry[2].getKey().matches("Host")) {
+ if(entry[3].empty())
+ host = entry[2][0];
+ }
+ else if(entry[2].getKey().matches("Username")) {
+ if(entry[3].empty())
+ username = entry[2][0];
+ }
+ else if(entry[2].getKey().matches("Password")) {
+ if(entry[3].empty())
+ passwd = entry[2][0];
+ }
+ else if(entry[2].getKey().matches("Database")) {
+ if(entry[3].empty())
+ db = entry[2][0];
+ }
+ else if(entry[2].getKey().matches("Port")) {
+ if(entry[3].empty()) {
+ char *endptr;
+ long val;
+
+ val = strtol(entry[2][0].c_str(), &endptr, 10);
+
+ if(endptr != 0 || val < 0 || val > 65535)
+ application->log(Core::LoggerBase::WARNING, "UserBackendMysql: Invalid port");
+ else
+ port = val;
}
- else if(entry[1].getKey().matches("Username")) {
- if(entry[2].empty())
- username = entry[1][0];
+ }
+ else if(entry[2].getKey().matches("UnixSocket")) {
+ if(entry[3].empty())
+ unixSocket = entry[2][0];
+ }
+ else if(entry[2].getKey().matches("Queries")) {
+ if(entry[3].getKey().matches("ListUsers")) {
+ if(entry[4].empty())
+ queryListUsers = entry[3][0];
}
- else if(entry[1].getKey().matches("Password")) {
- if(entry[2].empty())
- passwd = entry[1][0];
+ else if(entry[3].getKey().matches("ListGroups")) {
+ if(entry[4].empty())
+ queryListGroups = entry[3][0];
}
- else if(entry[1].getKey().matches("Database")) {
- if(entry[2].empty())
- db = entry[1][0];
+ else if(entry[3].getKey().matches("ListUserGroups")) {
+ if(entry[4].empty())
+ queryListUserGroups = entry[3][0];
}
- else if(entry[1].getKey().matches("Port")) {
- if(entry[2].empty()) {
- char *endptr;
- long val;
-
- val = strtol(entry[1][0].c_str(), &endptr, 10);
-
- if(endptr != 0 || val < 0 || val > 65535)
- application->log(Core::LoggerBase::WARNING, "UserBackendMysql: Invalid port");
- else
- port = val;
- }
+ else if(entry[3].getKey().matches("ListGroupUsers")) {
+ if(entry[4].empty())
+ queryListGroupUsers = entry[3][0];
}
- else if(entry[1].getKey().matches("UnixSocket")) {
- if(entry[2].empty())
- unixSocket = entry[1][0];
+ else if(entry[3].getKey().matches("UserById")) {
+ if(entry[4].empty())
+ queryUserById = entry[3][0];
}
- else if(entry[1].getKey().matches("Queries")) {
- if(entry[2].getKey().matches("ListUsers")) {
- if(entry[3].empty())
- queryListUsers = entry[2][0];
- }
- else if(entry[2].getKey().matches("ListGroups")) {
- if(entry[3].empty())
- queryListGroups = entry[2][0];
- }
- else if(entry[2].getKey().matches("ListUserGroups")) {
- if(entry[3].empty())
- queryListUserGroups = entry[2][0];
- }
- else if(entry[2].getKey().matches("ListGroupUsers")) {
- if(entry[3].empty())
- queryListGroupUsers = entry[2][0];
- }
- else if(entry[2].getKey().matches("UserById")) {
- if(entry[3].empty())
- queryUserById = entry[2][0];
- }
- else if(entry[2].getKey().matches("UserByName")) {
- if(entry[3].empty())
- queryUserByName = entry[2][0];
- }
- else if(entry[2].getKey().matches("GroupById")) {
- if(entry[3].empty())
- queryGroupById = entry[2][0];
- }
- else if(entry[2].getKey().matches("GroupByName")) {
- if(entry[3].empty())
- queryGroupByName = entry[2][0];
- }
- else if(entry[2].getKey().matches("UserGroupTable")) {
- if(entry[3].empty())
- queryUserGroupTable = entry[2][0];
- }
- else if(entry[2].getKey().matches("AddUser")) {
- if(entry[3].empty())
- queryAddUser = entry[2][0];
- }
- else if(entry[2].getKey().matches("UpdateUser")) {
- if(entry[3].empty())
- queryUpdateUser = entry[2][0];
- }
- else if(entry[2].getKey().matches("DeleteUser")) {
- if(entry[3].empty())
- queryDeleteUser = entry[2][0];
- }
- else if(entry[2].getKey().matches("AddUserToGroup")) {
- if(entry[3].empty())
- queryAddUserToGroup = entry[2][0];
- }
- else if(entry[2].getKey().matches("DeleteUserFromGroup")) {
- if(entry[3].empty())
- queryDeleteUserFromGroup = entry[2][0];
- }
- else if(!entry[2].empty())
- return false;
+ else if(entry[3].getKey().matches("UserByName")) {
+ if(entry[4].empty())
+ queryUserByName = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("GroupById")) {
+ if(entry[4].empty())
+ queryGroupById = entry[3][0];
}
- else if(!entry[1].empty())
+ else if(entry[3].getKey().matches("GroupByName")) {
+ if(entry[4].empty())
+ queryGroupByName = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("UserGroupTable")) {
+ if(entry[4].empty())
+ queryUserGroupTable = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("AddUser")) {
+ if(entry[4].empty())
+ queryAddUser = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("UpdateUser")) {
+ if(entry[4].empty())
+ queryUpdateUser = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("DeleteUser")) {
+ if(entry[4].empty())
+ queryDeleteUser = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("AddUserToGroup")) {
+ if(entry[4].empty())
+ queryAddUserToGroup = entry[3][0];
+ }
+ else if(entry[3].getKey().matches("DeleteUserFromGroup")) {
+ if(entry[4].empty())
+ queryDeleteUserFromGroup = entry[3][0];
+ }
+ else if(!entry[3].empty())
return false;
-
- return true;
}
+ else if(!entry[2].empty())
+ return false;
- return false;
+ return true;
}
void UserBackendMysql::configFinished() {