]> git.stg.codes - stg.git/commitdiff
Fix work with admins
authorMaxim Mamontov <faust.madf@gmail.com>
Sat, 19 Mar 2011 15:52:01 +0000 (17:52 +0200)
committerMaxim Mamontov <faust.madf@gmail.com>
Sat, 19 Mar 2011 15:52:01 +0000 (17:52 +0200)
16 files changed:
include/admins.h
include/tariffs.h
include/users.h
projects/stargazer/admins_impl.cpp
projects/stargazer/admins_impl.h
projects/stargazer/main.cpp
projects/stargazer/plugins/configuration/sgconfig/parser.cpp
projects/stargazer/plugins/configuration/sgconfig/parser_admin.cpp
projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp
projects/stargazer/tariffs_impl.cpp
projects/stargazer/tariffs_impl.h
projects/stargazer/user_impl.cpp
projects/stargazer/user_impl.h
projects/stargazer/user_property.h
projects/stargazer/users_impl.cpp
projects/stargazer/users_impl.h

index 48c02252cce3757af7a6d0afd7a477efd7e09173..169f1a26512fb176979aef4ef141a6069cc35faf 100644 (file)
 
 class ADMINS {
 public:
-    virtual int Add(const std::string & login, const ADMIN & admin) = 0;
-    virtual int Del(const std::string & login, const ADMIN & admin) = 0;
-    virtual int Change(const ADMIN_CONF & ac, const ADMIN & admin) = 0;
+    virtual int Add(const std::string & login, const ADMIN * admin) = 0;
+    virtual int Del(const std::string & login, const ADMIN * admin) = 0;
+    virtual int Change(const ADMIN_CONF & ac, const ADMIN * admin) = 0;
     virtual const ADMIN * GetSysAdmin() const = 0;
     virtual const ADMIN * GetNoAdmin() const = 0;
     virtual bool FindAdmin(const std::string & l, ADMIN ** admin) = 0;
     virtual bool AdminExists(const std::string & login) const = 0;
     virtual bool AdminCorrect(const std::string & login,
                               const std::string & password,
-                              ADMIN * admin) const = 0;
+                              ADMIN ** admin) = 0;
     virtual const std::string & GetStrError() const = 0;
 
     virtual int OpenSearch() const = 0;
index dfc47b48b66ffcc071bfd16d37d95e95fc22491e..1f91948fa53b71ea92f793d2bac4c75f168c7951 100644 (file)
@@ -34,9 +34,9 @@ public:
     virtual const TARIFF * FindByName(const std::string & name) const = 0;
     virtual const TARIFF * GetNoTariff() const = 0;
     virtual int            GetTariffsNum() const = 0;
-    virtual int            Del(const std::string & name, const ADMIN & admin) = 0;
-    virtual int            Add(const std::string & name, const ADMIN & admin) = 0;
-    virtual int            Chg(const TARIFF_DATA & td, const ADMIN & admin) = 0;
+    virtual int            Del(const std::string & name, const ADMIN * admin) = 0;
+    virtual int            Add(const std::string & name, const ADMIN * admin) = 0;
+    virtual int            Chg(const TARIFF_DATA & td, const ADMIN * admin) = 0;
 
     virtual void           GetTariffsData(std::list<TARIFF_DATA> * tdl) = 0;
 
index b9454ce413ca000a68ab0067e8124f11a3e3efe5..50f5ffe25995a324db77589138e22fdd4aa49a62 100644 (file)
@@ -40,8 +40,8 @@ public:
     virtual void AddNotifierUserDel(NOTIFIER_BASE<USER_PTR> * notifier) = 0;
     virtual void DelNotifierUserDel(NOTIFIER_BASE<USER_PTR> * notifier) = 0;
 
-    virtual int  Add(const std::string & login, const ADMIN & admin) = 0;
-    virtual void Del(const std::string & login, const ADMIN & admin) = 0;
+    virtual int  Add(const std::string & login, const ADMIN * admin) = 0;
+    virtual void Del(const std::string & login, const ADMIN * admin) = 0;
 
     virtual int  ReadUsers() = 0;
     virtual int  GetUserNum() const = 0;
index 99a8ff486edc4f66be88cf6cbe8258b070ab4367..38d2cec0a26b73c75d500d49daf425a5142cb5fb 100644 (file)
@@ -54,14 +54,14 @@ pthread_mutex_init(&mutex, NULL);
 ReadAdmins();
 }
 //-----------------------------------------------------------------------------
-int ADMINS_IMPL::Add(const string & login, const ADMIN & admin)
+int ADMINS_IMPL::Add(const string & login, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->adminChg)
     {
-    string s = admin.GetLogStr() + " Add administrator \'" + login + "\'. Access denied.";
+    string s = admin->GetLogStr() + " Add administrator \'" + login + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -73,7 +73,7 @@ admin_iter ai(find(data.begin(), data.end(), adm));
 if (ai != data.end())
     {
     strError = "Administrator \'" + login + "\' cannot not be added. Administrator alredy exist.";
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
 
     return -1;
     }
@@ -83,25 +83,25 @@ data.push_back(adm);
 if (store->AddAdmin(login) == 0)
     {
     WriteServLog("%s Administrator \'%s\' added.",
-                 admin.GetLogStr().c_str(), login.c_str());
+                 admin->GetLogStr().c_str(), login.c_str());
     return 0;
     }
 
 strError = "Administrator \'" + login + "\' was not added. Error: " + store->GetStrError();
-WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
 
 return -1;
 }
 //-----------------------------------------------------------------------------
-int ADMINS_IMPL::Del(const string & login, const ADMIN & admin)
+int ADMINS_IMPL::Del(const string & login, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 ADMIN_IMPL adm(0, login, "");
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->adminChg)
     {
-    string s = admin.GetLogStr() + " Delete administrator \'" + login + "\'. Access denied.";
+    string s = admin->GetLogStr() + " Delete administrator \'" + login + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -112,7 +112,7 @@ admin_iter ai(find(data.begin(), data.end(), adm));
 if (ai == data.end())
     {
     strError = "Administrator \'" + login + "\' cannot be deleted. Administrator does not exist.";
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
     return -1;
     }
 
@@ -129,23 +129,23 @@ data.remove(*ai);
 if (store->DelAdmin(login) < 0)
     {
     strError = "Administrator \'" + login + "\' was not deleted. Error: " + store->GetStrError();
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
 
     return -1;
     }
 
-WriteServLog("%s Administrator \'%s\' deleted.", admin.GetLogStr().c_str(), login.c_str());
+WriteServLog("%s Administrator \'%s\' deleted.", admin->GetLogStr().c_str(), login.c_str());
 return 0;
 }
 //-----------------------------------------------------------------------------
-int ADMINS_IMPL::Change(const ADMIN_CONF & ac, const ADMIN & admin)
+int ADMINS_IMPL::Change(const ADMIN_CONF & ac, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->adminChg)
     {
-    string s = admin.GetLogStr() + " Change administrator \'" + ac.login + "\'. Access denied.";
+    string s = admin->GetLogStr() + " Change administrator \'" + ac.login + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -157,7 +157,7 @@ admin_iter ai(find(data.begin(), data.end(), adm));
 if (ai == data.end())
     {
     strError = "Administrator \'" + ac.login + "\' cannot be changed " + ". Administrator does not exist.";
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
     return -1;
     }
 
@@ -170,7 +170,7 @@ if (store->SaveAdmin(ac))
     }
 
 WriteServLog("%s Administrator \'%s\' changed.",
-             admin.GetLogStr().c_str(), ac.login.c_str());
+             admin->GetLogStr().c_str(), ac.login.c_str());
 
 return 0;
 }
@@ -253,7 +253,7 @@ if (ai != data.end())
 return false;
 }
 //-----------------------------------------------------------------------------
-bool ADMINS_IMPL::AdminCorrect(const string & login, const std::string & password, ADMIN * admin) const
+bool ADMINS_IMPL::AdminCorrect(const string & login, const std::string & password, ADMIN ** admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 if (data.empty())
@@ -263,7 +263,7 @@ if (data.empty())
     }
 
 ADMIN_IMPL adm(0, login, "");
-const_admin_iter ai(find(data.begin(), data.end(), adm));
+admin_iter ai(find(data.begin(), data.end(), adm));
 
 if (ai == data.end())
     {
@@ -275,7 +275,7 @@ if (ai->GetPassword() != password)
     return false;
     }
 
-*admin = *ai;
+*admin = &(*ai);
 
 return true;
 }
index c40f2659f46dce24810e544a8d69e923986ca0d2..b481e25ff120681484e457240054627deec3a54a 100644 (file)
@@ -48,9 +48,9 @@ public:
     ADMINS_IMPL(STORE * st);
     virtual ~ADMINS_IMPL() {}
 
-    int           Add(const string & login, const ADMIN & admin);
-    int           Del(const string & login, const ADMIN & admin);
-    int           Change(const ADMIN_CONF & ac, const ADMIN & admin);
+    int           Add(const string & login, const ADMIN * admin);
+    int           Del(const string & login, const ADMIN * admin);
+    int           Change(const ADMIN_CONF & ac, const ADMIN * admin);
     void          PrintAdmins() const;
     const ADMIN * GetSysAdmin() const { return &stg; }
     const ADMIN * GetNoAdmin() const { return &noAdmin; }
@@ -58,7 +58,7 @@ public:
     bool          AdminExists(const std::string & login) const;
     bool          AdminCorrect(const std::string & login,
                                const std::string & password,
-                               ADMIN * admin) const;
+                               ADMIN ** admin);
     const std::string & GetStrError() const { return strError; }
 
     int OpenSearch() const;
index 8eacc9aca032aeb8e3bb458c32efde859db90621..6a8c61f51dea08829f1a4fd38a45ccdd585e575b 100644 (file)
@@ -552,7 +552,7 @@ WriteServLog("Storage plugin: %s. Loading successfull.", dataStore->GetVersion()
 
 tariffs = new TARIFFS_IMPL(dataStore);
 admins = new ADMINS_IMPL(dataStore);
-users = new USERS_IMPL(settings, dataStore, tariffs, *admins->GetSysAdmin());
+users = new USERS_IMPL(settings, dataStore, tariffs, admins->GetSysAdmin());
 traffCnt = new TRAFFCOUNTER(users, tariffs, settings->GetRulesFileName());
 traffCnt->SetMonitorDir(settings->GetMonitorDir());
 
index 05c16b10bac8c4c77cff51096128e4d4445ffdb2..b90cb2b6b8c15f6358ebd41fdd557a1763a83bdc 100644 (file)
@@ -712,7 +712,7 @@ int PARSER_ADD_USER::CheckUserData()
 USER_PTR u;
 if (users->FindByName(login, &u))
     {
-    return users->Add(login, *currAdmin);
+    return users->Add(login, currAdmin);
     }
 return -1;
 }
@@ -1019,49 +1019,49 @@ if (users->FindByName(login, &u))
     }
 
 if (!ucr->ips.res_empty())
-    if (!u->GetProperty().ips.Set(ucr->ips.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().ips.Set(ucr->ips.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->address.res_empty())
-    if (!u->GetProperty().address.Set(ucr->address.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().address.Set(ucr->address.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->alwaysOnline.res_empty())
     if (!u->GetProperty().alwaysOnline.Set(ucr->alwaysOnline.const_data(),
-                                      *currAdmin, login, store))
+                                      currAdmin, login, store))
         res = -1;
 
 if (!ucr->creditExpire.res_empty())
     if (!u->GetProperty().creditExpire.Set(ucr->creditExpire.const_data(),
-                                      *currAdmin, login, store))
+                                      currAdmin, login, store))
         res = -1;
 
 if (!ucr->credit.res_empty())
-    if (!u->GetProperty().credit.Set(ucr->credit.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().credit.Set(ucr->credit.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!usr->freeMb.res_empty())
-    if (!u->GetProperty().freeMb.Set(usr->freeMb.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().freeMb.Set(usr->freeMb.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->disabled.res_empty())
-    if (!u->GetProperty().disabled.Set(ucr->disabled.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().disabled.Set(ucr->disabled.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->disabledDetailStat.res_empty())
-    if (!u->GetProperty().disabledDetailStat.Set(ucr->disabledDetailStat.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().disabledDetailStat.Set(ucr->disabledDetailStat.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->email.res_empty())
-    if (!u->GetProperty().email.Set(ucr->email.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().email.Set(ucr->email.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->group.res_empty())
-    if (!u->GetProperty().group.Set(ucr->group.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().group.Set(ucr->group.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->note.res_empty())
-    if (!u->GetProperty().note.Set(ucr->note.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().note.Set(ucr->note.const_data(), currAdmin, login, store))
         res = -1;
 
 vector<USER_PROPERTY_LOGGED<string> *> userdata;
@@ -1080,25 +1080,25 @@ for (int i = 0; i < (int)userdata.size(); i++)
     {
     if (!ucr->userdata[i].res_empty())
         {
-        if(!userdata[i]->Set(ucr->userdata[i].const_data(), *currAdmin, login, store))
+        if(!userdata[i]->Set(ucr->userdata[i].const_data(), currAdmin, login, store))
             res = -1;
         }
     }
 
 if (!ucr->passive.res_empty())
-    if (!u->GetProperty().passive.Set(ucr->passive.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().passive.Set(ucr->passive.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->password.res_empty())
-    if (!u->GetProperty().password.Set(ucr->password.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().password.Set(ucr->password.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->phone.res_empty())
-    if (!u->GetProperty().phone.Set(ucr->phone.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().phone.Set(ucr->phone.const_data(), currAdmin, login, store))
         res = -1;
 
 if (!ucr->realName.res_empty())
-    if (!u->GetProperty().realName.Set(ucr->realName.const_data(), *currAdmin, login, store))
+    if (!u->GetProperty().realName.Set(ucr->realName.const_data(), currAdmin, login, store))
         res = -1;
 
 
@@ -1109,15 +1109,15 @@ if (!usr->cash.res_empty())
         if (cashMustBeAdded)
             {
             if (!u->GetProperty().cash.Set(usr->cash.const_data() + u->GetProperty().cash,
-                                      *currAdmin,
-                                      login,
-                                      store,
-                                      cashMsg))
+                                           currAdmin,
+                                           login,
+                                           store,
+                                           cashMsg))
                 res = -1;
             }
         else
             {
-            if (!u->GetProperty().cash.Set(usr->cash.const_data(), *currAdmin, login, store, cashMsg))
+            if (!u->GetProperty().cash.Set(usr->cash.const_data(), currAdmin, login, store, cashMsg))
                 res = -1;
             }
         }
@@ -1128,7 +1128,7 @@ if (!ucr->tariffName.res_empty())
     {
     if (tariffs->FindByName(ucr->tariffName.const_data()))
         {
-        if (!u->GetProperty().tariffName.Set(ucr->tariffName.const_data(), *currAdmin, login, store))
+        if (!u->GetProperty().tariffName.Set(ucr->tariffName.const_data(), currAdmin, login, store))
             res = -1;
         u->ResetNextTariff();
         }
@@ -1143,7 +1143,7 @@ if (!ucr->nextTariff.res_empty())
     {
     if (tariffs->FindByName(ucr->nextTariff.const_data()))
         {
-        if (!u->GetProperty().nextTariff.Set(ucr->nextTariff.const_data(), *currAdmin, login, store))
+        if (!u->GetProperty().nextTariff.Set(ucr->nextTariff.const_data(), currAdmin, login, store))
             res = -1;
         }
     else
@@ -1172,20 +1172,20 @@ for (int i = 0; i < DIR_NUM; i++)
     }
 
 if (upCount)
-    if (!u->GetProperty().up.Set(up, *currAdmin, login, store))
+    if (!u->GetProperty().up.Set(up, currAdmin, login, store))
         res = -1;
 
 if (downCount)
-    if (!u->GetProperty().down.Set(down, *currAdmin, login, store))
+    if (!u->GetProperty().down.Set(down, currAdmin, login, store))
         res = -1;
 
 /*if (!usr->down.res_empty())
     {
-    u->GetProperty().down.Set(usr->down.const_data(), *currAdmin, login, store);
+    u->GetProperty().down.Set(usr->down.const_data(), currAdmin, login, store);
     }
 if (!usr->up.res_empty())
     {
-    u->GetProperty().up.Set(usr->up.const_data(), *currAdmin, login, store);
+    u->GetProperty().up.Set(usr->up.const_data(), currAdmin, login, store);
     }*/
 
 u->WriteConf();
@@ -1375,7 +1375,7 @@ int PARSER_DEL_USER::ParseEnd(void *, const char *el)
 if (strcasecmp(el, "DelUser") == 0)
     {
     if (!res)
-        users->Del(u->GetLogin(), *currAdmin);
+        users->Del(u->GetLogin(), currAdmin);
 
     return 0;
     }
index f232fb23289f509d0868693f0950187455039fe6..a87c1dbfd765127462866f908b2bb62f724babdf 100644 (file)
@@ -93,7 +93,7 @@ void PARSER_DEL_ADMIN::CreateAnswer()
 //answerList->clear();
 answerList->erase(answerList->begin(), answerList->end());
 
-if (admins->Del(adminToDel, *currAdmin) == 0)
+if (admins->Del(adminToDel, currAdmin) == 0)
     {
     answerList->push_back("<DelAdmin Result=\"Ok\"/>");
     }
@@ -149,7 +149,7 @@ void PARSER_ADD_ADMIN::CreateAnswer()
 //answerList->clear();
 answerList->erase(answerList->begin(), answerList->end());
 
-if (admins->Add(adminToAdd, *currAdmin) == 0)
+if (admins->Add(adminToAdd, currAdmin) == 0)
     {
     answerList->push_back("<AddAdmin Result=\"Ok\"/>");
     }
@@ -241,7 +241,7 @@ if (!login.res_empty())
             conf.priv.tariffChg     = (p & 0x3000) >> 0x0C; // 1000+2000
             }
 
-        if (admins->Change(conf, *currAdmin) != 0)
+        if (admins->Change(conf, currAdmin) != 0)
             {
             strprintf(&s, "<ChgAdmin Result = \"%s\"/>", admins->GetStrError().c_str());
             answerList->push_back(s);
index e2daa336f45b4410a032e8d091e9607477e7c093..c17a77130db24d2ef8c7e10227c0fef6c92fc606 100644 (file)
@@ -180,7 +180,7 @@ void PARSER_ADD_TARIFF::CreateAnswer()
 //answerList->clear();
 answerList->erase(answerList->begin(), answerList->end());
 
-if (tariffs->Add(tariffToAdd, *currAdmin) == 0)
+if (tariffs->Add(tariffToAdd, currAdmin) == 0)
     {
     answerList->push_back("<AddTariff Result=\"Ok\"/>");
     }
@@ -228,7 +228,7 @@ if (users->TariffInUse(tariffToDel))
     return;
     }
 
-if (tariffs->Del(tariffToDel, *currAdmin) == 0)
+if (tariffs->Del(tariffToDel, currAdmin) == 0)
     {
     answerList->push_back("<DelTariff Result=\"Ok\"/>");
     }
@@ -475,7 +475,7 @@ answerList->erase(answerList->begin(), answerList->end());
 if (!td.tariffConf.name.data().empty())
     {
     TARIFF_DATA tariffData = td.GetData();
-    if (tariffs->Chg(tariffData, *currAdmin) == 0)
+    if (tariffs->Chg(tariffData, currAdmin) == 0)
         {
         answerList->push_back("<SetTariff Result=\"ok\"/>");
         return;
index 32de49716d960ac152f3d4c63a2652a1b0dfe977..e0ef68e1ba49be0be3db4e17b5e7a950ceeb89ee 100644 (file)
@@ -106,13 +106,13 @@ if (ti != tariffs.end())
 return NULL;
 }
 //-----------------------------------------------------------------------------
-int TARIFFS_IMPL::Chg(const TARIFF_DATA & td, const ADMIN & admin)
+int TARIFFS_IMPL::Chg(const TARIFF_DATA & td, const ADMIN * admin)
 {
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->tariffChg)
     {
-    string s = admin.GetLogStr() + " Change tariff \'"
+    string s = admin->GetLogStr() + " Change tariff \'"
                + td.tariffConf.name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
@@ -127,7 +127,7 @@ ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(td.tariffConf.name));
 if (ti == tariffs.end())
     {
     strError = "Tariff \'" + td.tariffConf.name + "\' cannot be changed. Tariff does not exist.";
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
     return -1;
     }
 
@@ -141,18 +141,18 @@ if (store->SaveTariff(td, td.tariffConf.name))
     }
 
 WriteServLog("%s Tariff \'%s\' changed.",
-             admin.GetLogStr().c_str(), td.tariffConf.name.c_str());
+             admin->GetLogStr().c_str(), td.tariffConf.name.c_str());
 
 return 0;
 }
 //-----------------------------------------------------------------------------
-int TARIFFS_IMPL::Del(const string & name, const ADMIN & admin)
+int TARIFFS_IMPL::Del(const string & name, const ADMIN * admin)
 {
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->tariffChg)
     {
-    string s = admin.GetLogStr() + " Delete tariff \'"
+    string s = admin->GetLogStr() + " Delete tariff \'"
                + name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
@@ -167,7 +167,7 @@ ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(name));
 if (ti == tariffs.end())
     {
     strError = "Tariff \'" + name + "\' cannot be deleted. Tariff does not exist.";
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
     return -1;
     }
 
@@ -181,18 +181,18 @@ if (store->DelTariff(name))
 tariffs.erase(ti);
 
 WriteServLog("%s Tariff \'%s\' deleted.",
-             admin.GetLogStr().c_str(),
+             admin->GetLogStr().c_str(),
              name.c_str());
 return 0;
 }
 //-----------------------------------------------------------------------------
-int TARIFFS_IMPL::Add(const string & name, const ADMIN & admin)
+int TARIFFS_IMPL::Add(const string & name, const ADMIN * admin)
 {
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->tariffChg)
     {
-    string s = admin.GetLogStr() + " Add tariff \'"
+    string s = admin->GetLogStr() + " Add tariff \'"
                + name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
@@ -207,7 +207,7 @@ ti = find(tariffs.begin(), tariffs.end(), TARIFF_IMPL(name));
 if (ti != tariffs.end())
     {
     strError = "Tariff \'" + name + "\' cannot be added. Tariff alredy exist.";
-    WriteServLog("%s %s", admin.GetLogStr().c_str(), strError.c_str());
+    WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
     return -1;
     }
 
@@ -221,7 +221,7 @@ if (store->AddTariff(name) < 0)
     }
 
 WriteServLog("%s Tariff \'%s\' added.",
-                 admin.GetLogStr().c_str(), name.c_str());
+                 admin->GetLogStr().c_str(), name.c_str());
 
 return 0;
 }
index 0b1c23b94c4f7767bbd502cd00c3edaf9323db53..5778945dc4e77546c4a8bf1a62c2eb0c89ffb31a 100644 (file)
@@ -61,9 +61,9 @@ public:
     const TARIFF * FindByName(const std::string & name) const;
     const TARIFF * GetNoTariff() const { return &noTariff; };
     int     GetTariffsNum() const;
-    int     Del(const std::string & name, const ADMIN & admin);
-    int     Add(const std::string & name, const ADMIN & admin);
-    int     Chg(const TARIFF_DATA & td, const ADMIN & admin);
+    int     Del(const std::string & name, const ADMIN * admin);
+    int     Add(const std::string & name, const ADMIN * admin);
+    int     Chg(const TARIFF_DATA & td, const ADMIN * admin);
 
     void    GetTariffsData(std::list<TARIFF_DATA> * tdl);
 
index 0d6cfa84b7e1d60dbcadadc5df74f85f044402a6..6ef806f278cdbbbb4ce5f9e53a75c99b92ccf649 100644 (file)
@@ -49,7 +49,7 @@
 USER_IMPL::USER_IMPL(const SETTINGS * s,
            const STORE * st,
            const TARIFFS * t,
-           const ADMIN & a,
+           const ADMIN * a,
            const USERS * u)
     : users(u),
       property(s),
index ad5b451601a7aa05cac07aa3a01bea994e91aa6d..ba69ced17466efa0dcea0d2a8568ea405d349224 100644 (file)
@@ -105,7 +105,7 @@ public:
     USER_IMPL(const SETTINGS * settings,
               const STORE * store,
               const TARIFFS * tariffs,
-              const ADMIN & sysAdmin,
+              const ADMIN * sysAdmin,
               const USERS * u);
     USER_IMPL(const USER_IMPL & u);
     virtual ~USER_IMPL();
@@ -221,7 +221,7 @@ private:
 
     time_t          pingTime;
 
-    const ADMIN &   sysAdmin;
+    const ADMIN *   sysAdmin;
     const STORE *   store;
 
     const TARIFFS * tariffs;
index 704f371e12084d985dbfa1167567bb33f8fa6eb3..c7019216b67cc5fcd89500852c947cc3731443e6 100644 (file)
@@ -77,17 +77,17 @@ public:
     const varT & Get() const;
     const string & GetName() const;
     bool Set(const varT & val,
-             const ADMIN & admin,
+             const ADMIN * admin,
              const string & login,
              const STORE * store,
              const string & msg = "");
 private:
     void WriteAccessDenied(const string & login,
-                           const ADMIN & admin,
+                           const ADMIN * admin,
                            const string & parameter);
 
     void WriteSuccessChange(const string & login,
-                            const ADMIN & admin,
+                            const ADMIN * admin,
                             const string & parameter,
                             const string & oldValue,
                             const string & newValue,
@@ -98,7 +98,7 @@ private:
                   const string & paramName,
                   const string & oldValue,
                   const string & newValue,
-                  const ADMIN  & admin);
+                  const ADMIN  * admin);
 
     string          name;       // parameter name. needed for logging
     bool            isPassword; // is parameter password. when true, it will be logged as *******
@@ -321,20 +321,16 @@ return name;
 //-------------------------------------------------------------------------
 template <typename varT>
 bool USER_PROPERTY_LOGGED<varT>::Set(const varT & val,
-                                     const ADMIN & admin,
+                                     const ADMIN * admin,
                                      const string & login,
                                      const STORE * store,
                                      const string & msg)
 {
 STG_LOCKER locker(&mutex, __FILE__, __LINE__);
 
-//cout << "USER_PROPERTY_LOGGED " << val << endl;
-//value = val;
-//modificationTime = stgTime;
-
-const PRIV * priv = admin.GetPriv();
-string adm_login = admin.GetLogin();
-string adm_ip = admin.GetIPStr();
+const PRIV * priv = admin->GetPriv();
+string adm_login = admin->GetLogin();
+string adm_ip = admin->GetIPStr();
 
 if ((priv->userConf && !isStat) || (priv->userStat && isStat) || (priv->userPasswd && isPassword) || (priv->userCash && name == "cash"))
     {
@@ -370,16 +366,16 @@ return true;
 //-------------------------------------------------------------------------
 template <typename varT>
 void USER_PROPERTY_LOGGED<varT>::WriteAccessDenied(const string & login,
-                                                   const ADMIN  & admin,
+                                                   const ADMIN  * admin,
                                                    const string & parameter)
 {
 stgLogger("%s Change user \'%s.\' Parameter \'%s\'. Access denied.",
-          admin.GetLogStr().c_str(), login.c_str(), parameter.c_str());
+          admin->GetLogStr().c_str(), login.c_str(), parameter.c_str());
 }
 //-------------------------------------------------------------------------
 template <typename varT>
 void USER_PROPERTY_LOGGED<varT>::WriteSuccessChange(const string & login,
-                                                    const ADMIN & admin,
+                                                    const ADMIN * admin,
                                                     const string & parameter,
                                                     const string & oldValue,
                                                     const string & newValue,
@@ -387,14 +383,14 @@ void USER_PROPERTY_LOGGED<varT>::WriteSuccessChange(const string & login,
                                                     const STORE * store)
 {
 stgLogger("%s User \'%s\': \'%s\' parameter changed from \'%s\' to \'%s\'. %s",
-          admin.GetLogStr().c_str(),
+          admin->GetLogStr().c_str(),
           login.c_str(),
           parameter.c_str(),
           oldValue.c_str(),
           newValue.c_str(),
           msg.c_str());
 
-store->WriteUserChgLog(login, admin.GetLogin(), admin.GetIP(), parameter, oldValue, newValue, msg);
+store->WriteUserChgLog(login, admin->GetLogin(), admin->GetIP(), parameter, oldValue, newValue, msg);
 }
 //-------------------------------------------------------------------------
 template <typename varT>
@@ -402,7 +398,7 @@ void USER_PROPERTY_LOGGED<varT>::OnChange(const string & login,
                                           const string & paramName,
                                           const string & oldValue,
                                           const string & newValue,
-                                          const ADMIN  & admin)
+                                          const ADMIN * admin)
 {
 string str1;
 
@@ -410,7 +406,7 @@ str1 = settings->GetConfDir() + "/OnChange";
 
 if (access(str1.c_str(), X_OK) == 0)
     {
-    string str2("\"" + str1 + "\" \"" + login + "\" \"" + paramName + "\" \"" + oldValue + "\" \"" + newValue + "\" \"" + admin.GetLogin() + "\" \"" + admin.GetIPStr() + "\"");
+    string str2("\"" + str1 + "\" \"" + login + "\" \"" + paramName + "\" \"" + oldValue + "\" \"" + newValue + "\" \"" + admin->GetLogin() + "\" \"" + admin->GetIPStr() + "\"");
     ScriptExec(str2);
     }
 else
index 9faadeb3b711995a89f595a1203f055a5127dd2c..3384c6602ce48ecb3a273ff1744df1c77db67f43 100644 (file)
@@ -52,7 +52,7 @@ extern const volatile time_t stgTime;
 //#define USERS_DEBUG 1
 
 //-----------------------------------------------------------------------------
-USERS_IMPL::USERS_IMPL(SETTINGS * s, STORE * st, TARIFFS * t, const ADMIN & sa)
+USERS_IMPL::USERS_IMPL(SETTINGS * s, STORE * st, TARIFFS * t, const ADMIN * sa)
     : users(),
       usersToDelete(),
       userIPNotifiersBefore(),
@@ -122,16 +122,16 @@ while (iter != users.end())
 return false;
 }
 //-----------------------------------------------------------------------------
-int USERS_IMPL::Add(const string & login, const ADMIN & admin)
+int USERS_IMPL::Add(const string & login, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 
 if (!priv->userAddDel)
     {
     WriteServLog("%s tried to add user \'%s\'. Access denied.",
-         admin.GetLogStr().c_str(), login.c_str());
-    /*errorStr = "Admin \'" + admin.GetLogin() +
+         admin->GetLogStr().c_str(), login.c_str());
+    /*errorStr = "Admin \'" + admin->GetLogin() +
                "\': tried to add user \'" + ud->login + "\'. Access denied.";*/
     return -1;
     }
@@ -141,7 +141,7 @@ if (store->AddUser(login))
     {
     //TODO
     //WriteServLog("Admin \'%s\': tried to add user \'%s\'. Access denied.",
-    //     admin.GetLogin().c_str(), ud->login.c_str());
+    //     admin->GetLogin().c_str(), ud->login.c_str());
     return -1;
     }
 //////
@@ -170,7 +170,7 @@ u.WriteConf();
 u.WriteStat();
 
 WriteServLog("%s User \'%s\' added.",
-         admin.GetLogStr().c_str(), login.c_str());
+         admin->GetLogStr().c_str(), login.c_str());
 
 u.OnAdd();
 
@@ -190,15 +190,15 @@ while (ni != onAddNotifiers.end())
 return 0;
 }
 //-----------------------------------------------------------------------------
-void USERS_IMPL::Del(const string & login, const ADMIN & admin)
+void USERS_IMPL::Del(const string & login, const ADMIN * admin)
 {
-const PRIV * priv = admin.GetPriv();
+const PRIV * priv = admin->GetPriv();
 user_iter u;
 
 if (!priv->userAddDel)
     {
     WriteServLog("%s tried to remove user \'%s\'. Access denied.",
-         admin.GetLogStr().c_str(), login.c_str());
+         admin->GetLogStr().c_str(), login.c_str());
     return;
     }
 
@@ -209,7 +209,7 @@ if (!priv->userAddDel)
     if (FindByNameNonLock(login, &u))
         {
         WriteServLog("%s tried to delete user \'%s\': not found.",
-                     admin.GetLogStr().c_str(),
+                     admin->GetLogStr().c_str(),
                      login.c_str());
         return;
         }
@@ -237,7 +237,7 @@ while (ni != onDelNotifiers.end())
     DelUserFromIndexes(u);
 
     WriteServLog("%s User \'%s\' deleted.",
-             admin.GetLogStr().c_str(), login.c_str());
+             admin->GetLogStr().c_str(), login.c_str());
 
     }
 }
index 966487dfb88933a90aa77ea7e11bc198a22d6946..b9df598179d6d5ef01dad5edb25d6f464cdacfad 100644 (file)
@@ -92,7 +92,7 @@ class USERS_IMPL : private NONCOPYABLE, public USERS {
     friend class PROPERTY_NOTIFER_IP_AFTER;
 
 public:
-    USERS_IMPL(SETTINGS * s, STORE * store, TARIFFS * tariffs, const ADMIN & sysAdmin);
+    USERS_IMPL(SETTINGS * s, STORE * store, TARIFFS * tariffs, const ADMIN * sysAdmin);
     virtual ~USERS_IMPL();
 
     int             FindByName(const std::string & login, USER_PTR * user);
@@ -105,8 +105,8 @@ public:
     void            AddNotifierUserDel(NOTIFIER_BASE<USER_PTR> *);
     void            DelNotifierUserDel(NOTIFIER_BASE<USER_PTR> *);
 
-    int             Add(const std::string & login, const ADMIN & admin);
-    void            Del(const std::string & login, const ADMIN & admin);
+    int             Add(const std::string & login, const ADMIN * admin);
+    void            Del(const std::string & login, const ADMIN * admin);
 
     int             ReadUsers();
     int             GetUserNum() const;
@@ -154,7 +154,7 @@ private:
     SETTINGS *          settings;
     TARIFFS *           tariffs;
     STORE *             store;
-    const ADMIN &       sysAdmin;
+    const ADMIN *       sysAdmin;
     STG_LOGGER &        WriteServLog;
 
     bool                nonstop;