-STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-std::list<USER_IMPL>::const_iterator iter;
-iter = users.begin();
+std::lock_guard<std::mutex> lock(m_mutex);
+const_user_iter u;
+if (!FindByNameNonLock(login, &u))
+ return -1;
+*user = &(*u);
+return 0;
+}
+//-----------------------------------------------------------------------------
+bool UsersImpl::Exists(const std::string & login) const
+{
+std::lock_guard<std::mutex> lock(m_mutex);
+const auto iter = loginIndex.find(login);
+return iter != loginIndex.end();
+}
+//-----------------------------------------------------------------------------
+bool UsersImpl::TariffInUse(const std::string & tariffName) const
+{
+std::lock_guard<std::mutex> lock(m_mutex);
+auto iter = users.begin();