X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/ae21e8d6ad32d0bf3517127aef5cd8129b7507aa..8c6fa3fbaccc22127280bf77a48fab5a3ee0716e:/projects/stargazer/users_impl.h diff --git a/projects/stargazer/users_impl.h b/projects/stargazer/users_impl.h index b9d2b22d..0cba7893 100644 --- a/projects/stargazer/users_impl.h +++ b/projects/stargazer/users_impl.h @@ -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 *); @@ -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;