X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/0a5045398fd1810d585c00d1e0a6700648c43195..ad34d43426a49a050c807a9fffcda0ccf8bb23d2:/projects/stargazer/users_impl.h?ds=inline diff --git a/projects/stargazer/users_impl.h b/projects/stargazer/users_impl.h index 4c586b06..a7af2989 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,15 +135,13 @@ 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); void RealDelUser(); void ProcessActions(); - void SetUserNotifiers(user_iter user); - void UnSetUserNotifiers(user_iter user); - void AddUserIntoIndexes(user_iter user); void DelUserFromIndexes(user_iter user); @@ -152,8 +154,6 @@ private: std::list users; std::list usersToDelete; - std::list userIPNotifiersBefore; - std::list userIPNotifiersAfter; std::map ipIndex; std::map loginIndex; @@ -179,7 +179,7 @@ private: std::set*> onDelNotifiersImpl; }; //----------------------------------------------------------------------------- -inline +/*inline void PROPERTY_NOTIFER_IP_BEFORE::Notify(const uint32_t & oldValue, const uint32_t &) { @@ -201,6 +201,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