std::string scriptOnConnectParams;
+ strprintf(&scriptOnConnectParams,
+ "%s \"%s\" \"%s\" \"%f\" \"%d\" \"%s\"",
+ scriptOnConnect.c_str(),
+ login.c_str(),
+ inet_ntostring(currIP).c_str(),
+ cash.ConstData(),
+ id,
+ dirsStr);
+
std::vector<std::string>::const_iterator it(settings->GetScriptParams().begin());
while (it != settings->GetScriptParams().end())
{
- scriptOnConnectParams += GetParamValue(it->c_str());
+ scriptOnConnectParams += " \"" + GetParamValue(it->c_str()) + "\"";
+ ++it;
}
-// strprintf(&scriptOnConnectParams,
-// "%s \"%s\" \"%s\" \"%f\" \"%d\" \"%s\"",
-// scriptOnConnect.c_str(),
-// login.c_str(),
-// inet_ntostring(currIP).c_str(),
-// cash.ConstData(),
-// id,
-// dirsStr);
-
ScriptExec(scriptOnConnectParams.c_str());
}
else
id,
dirsStr);
+ std::vector<std::string>::const_iterator it(settings->GetScriptParams().begin());
+ while (it != settings->GetScriptParams().end())
+ {
+ scriptOnDisonnectParams += " \"" + GetParamValue(it->c_str()) + "\"";
+ ++it;
+ }
+
ScriptExec(scriptOnDisonnectParams.c_str());
}
else
return (cash - tariff->GetFee() >= -credit);
}
//-----------------------------------------------------------------------------
-std::string USER_IMPL::GetEnabledDirs()
+std::string USER_IMPL::GetEnabledDirs() const
{
//STG_LOCKER lock(&mutex, __FILE__, __LINE__);
}
//-----------------------------------------------------------------------------
std::string USER_IMPL::GetParamValue(const std::string & name) const
- {
- if (name == "cash")
- {
- return static_cast<std::string>(property.cash);
- }
- if (name == "freeMb")
- {
- return static_cast<std::string>(property.freeMb);
- }
- if (name == "passive")
- {
- return static_cast<std::string>(property.passive);
- }
- if (name == "disabled")
- {
- return static_cast<std::string>(property.disabled);
- }
- if (name == "alwaysOnline")
- {
- return static_cast<std::string>(property.alwaysOnline);
- }
- if (name == "tariffName")
- {
- return property.tariffName;
- }
- if (name == "nextTariff")
- {
- return property.nextTariff;
- }
- if (name == "address")
- {
- return property.address;
- }
- if (name == "note")
- {
- return property.note;
- }
- if (name == "group")
- {
- return property.group;
- }
- if (name == "email")
- {
- return property.email;
- }
- if (name == "phone")
- {
- return property.phone;
- }
- if (name == "realName")
- {
- return property.realName;
- }
- if (name == "credit")
- {
- return static_cast<std::string>(property.credit);
- }
- if (name == "userdata0")
- {
- return property.userdata0;
- }
- if (name == "userdata1")
- {
- return property.userdata1;
- }
- if (name == "userdata2")
- {
- return property.userdata2;
- }
- if (name == "userdata3")
- {
- return property.userdata3;
- }
- if (name == "userdata4")
- {
- return property.userdata4;
- }
- if (name == "userdata5")
- {
- return property.userdata5;
- }
- if (name == "userdata6")
- {
- return property.userdata6;
- }
- if (name == "userdata7")
- {
- return property.userdata7;
- }
- if (name == "userdata8")
- {
- return property.userdata8;
- }
- if (name == "userdata9")
- {
- return property.userdata9;
- }
+{
if (name == "id")
{
- return static_cast<std::string>(id);
- }
- if (name == "login")
- {
- return login;
+ std::ostringstream stream;
+ stream << id;
+ return stream.str();
}
- if (name == "ip")
+ if (name == "login") return login;
+ if (name == "currIP") return currIP.ToString();
+ if (name == "enabledDirs") return GetEnabledDirs();
+ if (property.Exists(name))
+ return property.GetPropertyValue(name);
+ else
{
- return static_cast<std::string>(currIP);
+ WriteServLog("User’s parameter '%s' does not exist.", name.c_str());
+ return "";
}
- }
+}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------