]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/configuration/rpcconfig/users_methods.h
ee8e656ec1ad98d3dbf4dbf0a9e752f41716f9f5
[stg.git] / projects / stargazer / plugins / configuration / rpcconfig / users_methods.h
1 #ifndef __USERS_METHODS_H__
2 #define __USERS_METHODS_H__
3
4 #include <xmlrpc-c/base.hpp>
5 #include <xmlrpc-c/registry.hpp>
6
7 #include "../../../users.h"
8 #include "../../../user.h"
9
10 class RPC_CONFIG;
11
12 class METHOD_USER_GET : public xmlrpc_c::method {
13 public:
14     METHOD_USER_GET(RPC_CONFIG * c,
15                     USERS * u)
16         : config(c),
17           users(u)
18     {
19     }
20
21     void execute(xmlrpc_c::paramList const & paramList,
22                  xmlrpc_c::value *   const   retvalP);
23 private:
24     RPC_CONFIG * config;
25     USERS * users;
26 };
27
28 class METHOD_USER_ADD : public xmlrpc_c::method {
29 public:
30     METHOD_USER_ADD(RPC_CONFIG * c,
31                     ADMINS * a,
32                     USERS * u)
33         : config(c),
34           admins(a),
35           users(u)
36     {
37     }
38
39     void execute(xmlrpc_c::paramList const & paramList,
40                  xmlrpc_c::value *   const   retvalP);
41 private:
42     RPC_CONFIG * config;
43     ADMINS * admins;
44     USERS * users;
45 };
46
47 class METHOD_USER_DEL : public xmlrpc_c::method {
48 public:
49     METHOD_USER_DEL(RPC_CONFIG * c,
50                     ADMINS * a,
51                     USERS * u)
52         : config(c),
53           admins(a),
54           users(u)
55     {
56     }
57
58     void execute(xmlrpc_c::paramList const & paramList,
59                  xmlrpc_c::value *   const   retvalP);
60 private:
61     RPC_CONFIG * config;
62     ADMINS * admins;
63     USERS * users;
64 };
65
66 class METHOD_USERS_GET : public xmlrpc_c::method {
67 public:
68     METHOD_USERS_GET(RPC_CONFIG * c,
69                      USERS * u)
70         : config(c),
71           users(u)
72     {
73     }
74
75     void execute(xmlrpc_c::paramList const & paramList,
76                  xmlrpc_c::value *   const   retvalP);
77 private:
78     RPC_CONFIG * config;
79     USERS * users;
80 };
81
82 class METHOD_USER_CHG : public xmlrpc_c::method {
83 public:
84     METHOD_USER_CHG(RPC_CONFIG * c,
85                     ADMINS * a,
86                     BASE_STORE * s,
87                     USERS * u)
88         : config(c),
89           admins(a),
90           store(s),
91           users(u)
92     {
93     }
94
95     void execute(xmlrpc_c::paramList const & paramList,
96                  xmlrpc_c::value *   const   retvalP);
97 private:
98     RPC_CONFIG * config;
99     ADMINS * admins;
100     BASE_STORE * store;
101     USERS * users;
102 };
103
104 class METHOD_USER_CASH_ADD : public xmlrpc_c::method {
105 public:
106     METHOD_USER_CASH_ADD(RPC_CONFIG * c,
107                          ADMINS * a,
108                          BASE_STORE * s,
109                          USERS * u)
110         : config(c),
111           admins(a),
112           store(s),
113           users(u)
114     {
115     }
116
117     void execute(xmlrpc_c::paramList const & paramList,
118                  xmlrpc_c::value *   const   retvalP);
119 private:
120     RPC_CONFIG * config;
121     ADMINS * admins;
122     BASE_STORE * store;
123     USERS * users;
124 };
125
126 class METHOD_USER_CASH_SET : public xmlrpc_c::method {
127 public:
128     METHOD_USER_CASH_SET(RPC_CONFIG * c,
129                          ADMINS * a,
130                          BASE_STORE * s,
131                          USERS * u)
132         : config(c),
133           admins(a),
134           store(s),
135           users(u)
136     {
137     }
138
139     void execute(xmlrpc_c::paramList const & paramList,
140                  xmlrpc_c::value *   const   retvalP);
141 private:
142     RPC_CONFIG * config;
143     ADMINS * admins;
144     BASE_STORE * store;
145     USERS * users;
146 };
147
148 class METHOD_USER_TARIFF_CHANGE : public xmlrpc_c::method {
149 public:
150     METHOD_USER_TARIFF_CHANGE(RPC_CONFIG * c,
151                               ADMINS * a,
152                               TARIFFS * t,
153                               BASE_STORE * s,
154                               USERS * u)
155         : config(c),
156           admins(a),
157           tariffs(t),
158           store(s),
159           users(u)
160     {
161     }
162
163     void execute(xmlrpc_c::paramList const & paramList,
164                  xmlrpc_c::value *   const   retvalP);
165 private:
166     RPC_CONFIG * config;
167     ADMINS * admins;
168     TARIFFS * tariffs;
169     BASE_STORE * store;
170     USERS * users;
171 };
172
173 class METHOD_GET_ONLINE_IPS : public xmlrpc_c::method {
174 public:
175     METHOD_GET_ONLINE_IPS(RPC_CONFIG * c,
176                           USERS * u)
177         : config(c),
178           users(u)
179     {
180     }
181
182     void execute(xmlrpc_c::paramList const & paramList,
183                  xmlrpc_c::value *   const   retvalP);
184 private:
185     RPC_CONFIG * config;
186     USERS * users;
187
188     bool ParseNet(const std::string & net, IP_MASK & ipm) const;
189 };
190
191 #endif