summaryrefslogtreecommitdiffstats
path: root/src/modules/UserBackendMysql.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/UserBackendMysql.h')
-rw-r--r--src/modules/UserBackendMysql.h35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/modules/UserBackendMysql.h b/src/modules/UserBackendMysql.h
index 85a25ee..60b2bd9 100644
--- a/src/modules/UserBackendMysql.h
+++ b/src/modules/UserBackendMysql.h
@@ -24,6 +24,8 @@
#include <Common/Configurable.h>
#include <Common/ConfigManager.h>
+#include <mysql/mysql.h>
+
namespace Mad {
namespace Modules {
@@ -32,37 +34,36 @@ class UserBackendMysql : private Core::UserBackend, private Common::Configurable
private:
static UserBackendMysql *backend;
- std::string host, username, password, db;
+ std::string host, username, passwd, db, unixSocket;
+ uint16_t port;
std::string queryListUsers, queryListGroups;
std::string queryListUserGroups, queryListGroupUsers;
std::string queryUserById, queryUserByName;
std::string queryGroupById, queryGroupByName;
- UserBackendMysql() {}
+ MYSQL *mysql;
+
+ UserBackendMysql() : port(0), mysql(0) {}
protected:
virtual bool handleConfigEntry(const Common::ConfigEntry &entry, bool);
virtual void configFinished();
- public:
- static void registerBackend() {
- if(backend)
- return;
+ virtual bool userList(const sigc::slot<void, const std::map<unsigned long, Common::UserInfo>& > &callback);
+ virtual bool userInfo(unsigned long uid, const sigc::slot<void, const Common::UserInfo&> &callback);
+ virtual bool password(unsigned long uid, const std::string &password, const sigc::slot<void, bool> &callback);
- backend = new UserBackendMysql();
- Common::ConfigManager::get()->registerConfigurable(backend);
+ public:
+ virtual ~UserBackendMysql() {
+ if(mysql) {
+ mysql_close(mysql);
+ mysql = 0;
+ }
}
- static void unregisterBackend() {
- if(!backend)
- return;
-
- Common::ConfigManager::get()->unregisterConfigurable(backend);
- UserBackend::unregisterBackend(backend);
- delete backend;
- backend = 0;
- }
+ static void registerBackend();
+ static void unregisterBackend();
};
}