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