]> git.stg.codes - stg.git/commitdiff
Added a function to check user existance.
authorMaxim Mamontov <faust.madf@gmail.com>
Thu, 18 Sep 2014 19:43:34 +0000 (22:43 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Thu, 18 Sep 2014 19:43:34 +0000 (22:43 +0300)
include/stg/users.h
projects/stargazer/users_impl.cpp
projects/stargazer/users_impl.h

index 9f516aef877358c1d3d3537423c1d7b2d615f2c3..3fb951e07cbe570a1f3b99cebbb803917542f4c4 100644 (file)
@@ -33,6 +33,7 @@ public:
     virtual ~USERS() {}
     virtual int  FindByName(const std::string & login, USER_PTR * user) = 0;
     virtual int  FindByName(const std::string & login, CONST_USER_PTR * user) const = 0;
+    virtual bool Exists(const std::string & login) const = 0;
 
     virtual bool TariffInUse(const std::string & tariffName) const = 0;
 
index d66456af5aabf74bb0f5fa49d578d5d0e88f02e1..3dd7638b9b2ecf392685ccd2f68d19b9fd17edde 100644 (file)
@@ -126,6 +126,13 @@ if (FindByNameNonLock(login, &u))
 return 0;
 }
 //-----------------------------------------------------------------------------
+bool USERS_IMPL::Exists(const std::string & login) const
+{
+STG_LOCKER lock(&mutex);
+const std::map<std::string, user_iter>::const_iterator iter(loginIndex.find(login));
+return iter != loginIndex.end();
+}
+//-----------------------------------------------------------------------------
 bool USERS_IMPL::TariffInUse(const std::string & tariffName) const
 {
 STG_LOCKER lock(&mutex);
index 43065bdeb18753f3ab9bbeeb1c68491892cc2b48..a8f8d559515028dbbf0dfc1fbddd57f518cc29fb 100644 (file)
@@ -77,6 +77,8 @@ public:
     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> *);