]> git.stg.codes - stg.git/blobdiff - projects/stargazer/users_impl.h
Ticket 26. The SETTINGS_IMPL & SETTINGS_IMPL::operator() definition added.
[stg.git] / projects / stargazer / users_impl.h
index b9d2b22d34e894f123862de2d089dbedc8e489ee..0cba7893bc04ca0db3630f890697673117753ed0 100644 (file)
@@ -71,12 +71,16 @@ class USERS_IMPL : private NONCOPYABLE, public USERS {
     friend class PROPERTY_NOTIFER_IP_AFTER;
 
 public:
-    USERS_IMPL(SETTINGS_IMPL * s, STORE * store, TARIFFS * tariffs, const ADMIN * sysAdmin);
+    USERS_IMPL(SETTINGS_IMPL * s, STORE * store,
+               TARIFFS * tariffs, SERVICES & svcs,
+               const ADMIN * sysAdmin);
     virtual ~USERS_IMPL();
 
     int             FindByName(const std::string & login, USER_PTR * user);
     int             FindByName(const std::string & login, CONST_USER_PTR * user) const;
 
+    bool            Exists(const std::string & login) const;
+
     bool            TariffInUse(const std::string & tariffName) const;
 
     void            AddNotifierUserAdd(NOTIFIER_BASE<USER_PTR> *);
@@ -96,7 +100,9 @@ public:
 
     bool            Authorize(const std::string & login, uint32_t ip,
                               uint32_t enabledDirs, const AUTH * auth);
-    bool            Unauthorize(const std::string & login, const AUTH * auth);
+    bool            Unauthorize(const std::string & login,
+                                const AUTH * auth,
+                                const std::string & reason = std::string());
 
     int             ReadUsers();
     size_t          Count() const { return users.size(); }
@@ -146,6 +152,7 @@ private:
 
     SETTINGS_IMPL *     settings;
     TARIFFS *           tariffs;
+    SERVICES &          m_services;
     STORE *             store;
     const ADMIN *       sysAdmin;
     STG_LOGGER &        WriteServLog;