]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/configuration/rpcconfig/admins_methods.h
Check IP in USERS_IMPL::Authorize as early as possible
[stg.git] / projects / stargazer / plugins / configuration / rpcconfig / admins_methods.h
1 #ifndef __ADMINS_METHODS_H__
2 #define __ADMINS_METHODS_H__
3
4 #include <xmlrpc-c/base.hpp>
5 #include <xmlrpc-c/registry.hpp>
6
7 #include "stg/admins.h"
8 #include "stg/admin.h"
9
10 class RPC_CONFIG;
11
12 class METHOD_ADMIN_GET : public xmlrpc_c::method {
13 public:
14     METHOD_ADMIN_GET(RPC_CONFIG * c,
15                      ADMINS * a)
16         : config(c),
17           admins(a)
18     {
19     }
20
21     void execute(xmlrpc_c::paramList const & paramList,
22                  xmlrpc_c::value * const retvalPtr);
23 private:
24     RPC_CONFIG * config;
25     ADMINS * admins;
26 };
27
28 class METHOD_ADMIN_ADD : public xmlrpc_c::method {
29 public:
30     METHOD_ADMIN_ADD(RPC_CONFIG * c,
31                      ADMINS * a)
32         : config(c),
33           admins(a)
34     {
35     }
36
37     void execute(xmlrpc_c::paramList const & paramList,
38                  xmlrpc_c::value * const retvalPtr);
39 private:
40     RPC_CONFIG * config;
41     ADMINS * admins;
42 };
43
44 class METHOD_ADMIN_DEL : public xmlrpc_c::method {
45 public:
46     METHOD_ADMIN_DEL(RPC_CONFIG * c,
47                      ADMINS * a)
48         : config(c),
49           admins(a)
50     {
51     }
52
53     void execute(xmlrpc_c::paramList const & paramList,
54                  xmlrpc_c::value * const retvalPtr);
55 private:
56     RPC_CONFIG * config;
57     ADMINS * admins;
58 };
59
60 class METHOD_ADMIN_CHG : public xmlrpc_c::method {
61 public:
62     METHOD_ADMIN_CHG(RPC_CONFIG * c,
63                      ADMINS * a)
64         : config(c),
65           admins(a)
66     {
67     }
68
69     void execute(xmlrpc_c::paramList const & paramList,
70                  xmlrpc_c::value * const retvalPtr);
71 private:
72     RPC_CONFIG * config;
73     ADMINS * admins;
74 };
75
76 class METHOD_ADMINS_GET : public xmlrpc_c::method {
77 public:
78     METHOD_ADMINS_GET(RPC_CONFIG * c,
79                       ADMINS * a)
80         : config(c),
81           admins(a)
82     {
83     }
84
85     void execute(xmlrpc_c::paramList const & paramList,
86                  xmlrpc_c::value * const retvalPtr);
87 private:
88     RPC_CONFIG * config;
89     ADMINS * admins;
90 };
91
92 #endif