X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/28e38ce4f9f1a88ea4bed4fa008ed72aa7f75450..291779a4a9998e89dfada3c6b9d69db050dfe016:/projects/stargazer/users_impl.h diff --git a/projects/stargazer/users_impl.h b/projects/stargazer/users_impl.h index 4c586b06..de1a2d40 100644 --- a/projects/stargazer/users_impl.h +++ b/projects/stargazer/users_impl.h @@ -56,7 +56,7 @@ typedef std::list::const_iterator const_user_iter; class USERS_IMPL; //----------------------------------------------------------------------------- -class PROPERTY_NOTIFER_IP_BEFORE: public PROPERTY_NOTIFIER_BASE { +/*class PROPERTY_NOTIFER_IP_BEFORE: public PROPERTY_NOTIFIER_BASE { public: PROPERTY_NOTIFER_IP_BEFORE(USERS_IMPL & us, user_iter u) : users(us), user(u) {} void Notify(const uint32_t & oldValue, const uint32_t & newValue); @@ -74,7 +74,7 @@ public: private: USERS_IMPL & users; user_iter user; -}; +};*/ //----------------------------------------------------------------------------- struct USER_TO_DEL { USER_TO_DEL() @@ -113,6 +113,10 @@ public: int Add(const std::string & login, const ADMIN * admin); void Del(const std::string & login, const ADMIN * admin); + bool Authorize(const std::string & login, uint32_t ip, + uint32_t enabledDirs, const AUTH * auth); + bool Unauthorize(const std::string & login, const AUTH * auth); + int ReadUsers(); size_t Count() const { return users.size(); } @@ -131,6 +135,7 @@ public: private: void AddToIPIdx(user_iter user); void DelFromIPIdx(uint32_t ip); + bool FindByIPIdx(uint32_t ip, user_iter & iter) const; int FindByNameNonLock(const std::string & login, user_iter * user); @@ -152,8 +157,8 @@ private: std::list users; std::list usersToDelete; - std::list userIPNotifiersBefore; - std::list userIPNotifiersAfter; + /*std::list userIPNotifiersBefore; + std::list userIPNotifiersAfter;*/ std::map ipIndex; std::map loginIndex; @@ -179,7 +184,7 @@ private: std::set*> onDelNotifiersImpl; }; //----------------------------------------------------------------------------- -inline +/*inline void PROPERTY_NOTIFER_IP_BEFORE::Notify(const uint32_t & oldValue, const uint32_t &) { @@ -201,6 +206,6 @@ if (!newValue) //EVENT_LOOP_SINGLETON::GetInstance().Enqueue(users, &USERS::AddToIPIdx, user); // Using explicit call to assure that index is valid, because fast reconnect with delayed call can result in authorization error users.AddToIPIdx(user); -} +}*/ //----------------------------------------------------------------------------- #endif