]> git.stg.codes - stg.git/commitdiff
Merge remote-tracking branch 'origin/stg-2.409' into ticket37
authorElena Mamontova <helenh463@gmail.com>
Tue, 6 Sep 2016 13:11:04 +0000 (16:11 +0300)
committerElena Mamontova <helenh463@gmail.com>
Tue, 6 Sep 2016 13:11:04 +0000 (16:11 +0300)
1  2 
projects/stargazer/user_impl.cpp

index 92528a6f0d75576fa25d654e9c4c969640d6f12f,55a0b197968756d7addf7eb6e8e2be0aad686ba0..aea25c781b43577c3bfd4b7fb50ea652f8b45210
@@@ -80,7 -80,7 +80,7 @@@ USER_IMPL::USER_IMPL(const SETTINGS * s
             const USERS * u,
             const SERVICES & svcs)
      : users(u),
-       property(s->GetScriptsDir()),
+       property(*s),
        WriteServLog(GetStgLogger()),
        lastScanMessages(0),
        id(0),
@@@ -150,7 -150,7 +150,7 @@@ USER_IMPL::USER_IMPL(const SETTINGS_IMP
                       const USERS * u,
                       const SERVICES & svcs)
      : users(u),
-       property(s->GetScriptsDir()),
+       property(*s),
        WriteServLog(GetStgLogger()),
        lastScanMessages(0),
        id(0),
@@@ -237,7 -237,7 +237,7 @@@ pthread_mutex_init(&mutex, &attr)
  USER_IMPL::USER_IMPL(const USER_IMPL & u)
      : USER(),
        users(u.users),
-       property(u.settings->GetScriptsDir()),
+       property(*u.settings),
        WriteServLog(GetStgLogger()),
        lastScanMessages(0),
        login(u.login),
@@@ -621,7 -621,7 +621,7 @@@ if (!fakeConnect
      connected = true;
      }
  
- if (store->WriteUserConnect(login, currIP))
+ if (!settings->GetDisableSessionLog() && store->WriteUserConnect(login, currIP))
      {
      WriteServLog("Cannot write connect for user %s.", login.c_str());
      WriteServLog("%s", store->GetStrError().c_str());
@@@ -685,8 -685,8 +685,8 @@@ std::string reasonMessage(reason)
  if (!lastDisconnectReason.empty())
      reasonMessage += ": " + lastDisconnectReason;
  
- if (store->WriteUserDisconnect(login, up, down, sessionUpload, sessionDownload,
-                                cash, freeMb, reasonMessage))
+ if (!settings->GetDisableSessionLog() && store->WriteUserDisconnect(login, up, down, sessionUpload, sessionDownload,
+                                                                     cash, freeMb, reasonMessage))
      {
      WriteServLog("Cannot write disconnect for user %s.", login.c_str());
      WriteServLog("%s", store->GetStrError().c_str());
@@@ -1178,24 -1178,10 +1178,24 @@@ if (nextTariff.ConstData() != ""
      {
      const TARIFF * nt = tariffs->FindByName(nextTariff);
      if (nt == NULL)
 +        {
          WriteServLog("Cannot change tariff for user %s. Tariff %s not exist.",
                       login.c_str(), property.tariffName.Get().c_str());
 +        }
      else
 -        property.tariffName.Set(nextTariff, sysAdmin, login, store);
 +        {
 +        std::string message = tariff->TariffChangeIsAllowed(*nt);
 +        if (message.empty())
 +            {
 +            property.tariffName.Set(nextTariff, sysAdmin, login, store);
 +            }
 +        else
 +            {
 +            WriteServLog("Tariff change is prohibited for user %s. %s",
 +                         login.c_str(),
 +                         message.c_str());
 +            }
 +        }
      ResetNextTariff();
      WriteConf();
      }