summaryrefslogtreecommitdiffstats
path: root/src/modules/UserBackendMysql.cpp
blob: e5818c6e05819978c51b3c251aab27a7702fd7b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
 * UserBackendMysql.cpp
 *
 * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de>
 *
 * This program is free software: you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#include "UserBackendMysql.h"
#include <Common/ConfigEntry.h>

#define init UserBackendMysql_LTX_init
#define deinit UserBackendMysql_LTX_deinit


namespace Mad {
namespace Modules {

UserBackendMysql *UserBackendMysql::backend;

bool UserBackendMysql::handleConfigEntry(const Common::ConfigEntry &entry, bool handled) {
  if(handled)
    return false;

  if(entry[0].getKey().matches("UserBackendMysql")) {
    if(entry[1].getKey().matches("Host")) {
      if(entry[2].empty())
        host = entry[1][0];
    }
    else if(entry[1].getKey().matches("Username")) {
      if(entry[2].empty())
        username = entry[1][0];
    }
    else if(entry[1].getKey().matches("Password")) {
      if(entry[2].empty())
        password = entry[1][0];
    }
    else if(entry[1].getKey().matches("Database")) {
      if(entry[2].empty())
        db = entry[1][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];
      }
    }
  }
}

void UserBackendMysql::configFinished() {
  UserBackend::registerBackend(backend);
}

}
}

extern "C" {

void init() {
  Mad::Modules::UserBackendMysql::registerBackend();
}

void deinit() {
  Mad::Modules::UserBackendMysql::unregisterBackend();
}

}