]> git.stg.codes - stg.git/blobdiff - projects/stargazer/users_impl.h
Moved common initialization code to a separate class method.
[stg.git] / projects / stargazer / users_impl.h
index 69f3fbae8d9aca286e1aa9d1ae9f3ac0c9cc04c6..a8f8d559515028dbbf0dfc1fbddd57f518cc29fb 100644 (file)
@@ -75,6 +75,9 @@ public:
     virtual ~USERS_IMPL();
 
     int             FindByName(const std::string & login, USER_PTR * user);
     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;
 
 
     bool            TariffInUse(const std::string & tariffName) const;
 
@@ -95,7 +98,9 @@ public:
 
     bool            Authorize(const std::string & login, uint32_t ip,
                               uint32_t enabledDirs, const AUTH * auth);
 
     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(); }
 
     int             ReadUsers();
     size_t          Count() const { return users.size(); }
@@ -103,6 +108,7 @@ public:
     int             FindByIPIdx(uint32_t ip, USER_PTR * user) const;
     int             FindByIPIdx(uint32_t ip, USER_IMPL ** user) const;
     bool            IsIPInIndex(uint32_t ip) const;
     int             FindByIPIdx(uint32_t ip, USER_PTR * user) const;
     int             FindByIPIdx(uint32_t ip, USER_IMPL ** user) const;
     bool            IsIPInIndex(uint32_t ip) const;
+    bool            IsIPInUse(uint32_t ip, const std::string & login, CONST_USER_PTR * user) const;
 
     int             OpenSearch();
     int             SearchNext(int handler, USER_PTR * user);
 
     int             OpenSearch();
     int             SearchNext(int handler, USER_PTR * user);
@@ -121,6 +127,7 @@ private:
     bool            FindByIPIdx(uint32_t ip, user_iter & iter) const;
 
     int             FindByNameNonLock(const std::string & login, user_iter * user);
     bool            FindByIPIdx(uint32_t ip, user_iter & iter) const;
 
     int             FindByNameNonLock(const std::string & login, user_iter * user);
+    int             FindByNameNonLock(const std::string & login, const_user_iter * user) const;
 
     void            RealDelUser();
     void            ProcessActions();
 
     void            RealDelUser();
     void            ProcessActions();