#include <xmlrpc-c/base.hpp>
 #include <xmlrpc-c/registry.hpp>
 
-
 class RPC_CONFIG;
 class ADMINS;
 class TARIFFS;
 class USERS;
-class BASE_STORE;
-class IP_MASK;
+class STORE;
+struct IP_MASK;
 
 class METHOD_USER_GET : public xmlrpc_c::method {
 public:
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_GET(const METHOD_USER_GET & rvalue);
+    METHOD_USER_GET & operator=(const METHOD_USER_GET & rvalue);
+
     RPC_CONFIG * config;
     USERS * users;
 };
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_ADD(const METHOD_USER_ADD & rvalue);
+    METHOD_USER_ADD & operator=(const METHOD_USER_ADD & rvalue);
+
     RPC_CONFIG * config;
     ADMINS * admins;
     USERS * users;
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_DEL(const METHOD_USER_DEL & rvalue);
+    METHOD_USER_DEL & operator=(const METHOD_USER_DEL & rvalue);
+
     RPC_CONFIG * config;
     ADMINS * admins;
     USERS * users;
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USERS_GET(const METHOD_USERS_GET & rvalue);
+    METHOD_USERS_GET & operator=(const METHOD_USERS_GET & rvalue);
+
     RPC_CONFIG * config;
     USERS * users;
 };
     METHOD_USER_CHG(RPC_CONFIG * c,
                     ADMINS * a,
                     TARIFFS * t,
-                    BASE_STORE * s,
+                    STORE * s,
                     USERS * u)
         : config(c),
           admins(a),
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_CHG(const METHOD_USER_CHG & rvalue);
+    METHOD_USER_CHG & operator=(const METHOD_USER_CHG & rvalue);
+
     RPC_CONFIG * config;
     ADMINS * admins;
     TARIFFS * tariffs;
-    BASE_STORE * store;
+    STORE * store;
     USERS * users;
 };
 
 public:
     METHOD_USER_CASH_ADD(RPC_CONFIG * c,
                          ADMINS * a,
-                         BASE_STORE * s,
+                         STORE * s,
                          USERS * u)
         : config(c),
           admins(a),
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_CASH_ADD(const METHOD_USER_CASH_ADD & rvalue);
+    METHOD_USER_CASH_ADD & operator=(const METHOD_USER_CASH_ADD & rvalue);
+
     RPC_CONFIG * config;
     ADMINS * admins;
-    BASE_STORE * store;
+    STORE * store;
     USERS * users;
 };
 
 public:
     METHOD_USER_CASH_SET(RPC_CONFIG * c,
                          ADMINS * a,
-                         BASE_STORE * s,
+                         STORE * s,
                          USERS * u)
         : config(c),
           admins(a),
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_CASH_SET(const METHOD_USER_CASH_SET & rvalue);
+    METHOD_USER_CASH_SET & operator=(const METHOD_USER_CASH_SET & rvalue);
+
     RPC_CONFIG * config;
     ADMINS * admins;
-    BASE_STORE * store;
+    STORE * store;
     USERS * users;
 };
 
     METHOD_USER_TARIFF_CHANGE(RPC_CONFIG * c,
                               ADMINS * a,
                               TARIFFS * t,
-                              BASE_STORE * s,
+                              STORE * s,
                               USERS * u)
         : config(c),
           admins(a),
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_USER_TARIFF_CHANGE(const METHOD_USER_TARIFF_CHANGE & rvalue);
+    METHOD_USER_TARIFF_CHANGE & operator=(const METHOD_USER_TARIFF_CHANGE & rvalue);
+
     RPC_CONFIG * config;
     ADMINS * admins;
     TARIFFS * tariffs;
-    BASE_STORE * store;
+    STORE * store;
     USERS * users;
 };
 
 
     void execute(xmlrpc_c::paramList const & paramList,
                  xmlrpc_c::value *   const   retvalP);
+
 private:
+    METHOD_GET_ONLINE_IPS(const METHOD_GET_ONLINE_IPS & rvalue);
+    METHOD_GET_ONLINE_IPS & operator=(const METHOD_GET_ONLINE_IPS & rvalue);
+
     RPC_CONFIG * config;
     USERS * users;
 
     bool ParseNet(const std::string & net, IP_MASK & ipm) const;
 };
 
+class METHOD_GET_USER_AUTH_BY : public xmlrpc_c::method {
+public:
+    METHOD_GET_USER_AUTH_BY(RPC_CONFIG * c,
+                            USERS * u)
+        : config(c),
+          users(u)
+    {
+    }
+
+    void execute(xmlrpc_c::paramList const & paramList,
+                 xmlrpc_c::value *   const   retvalP);
+
+private:
+    METHOD_GET_USER_AUTH_BY(const METHOD_GET_ONLINE_IPS & rvalue);
+    METHOD_GET_USER_AUTH_BY & operator=(const METHOD_GET_ONLINE_IPS & rvalue);
+
+    RPC_CONFIG * config;
+    USERS * users;
+};
+
 #endif