* remove extra fields from Lua account objects to exclude additional sql query.

* verious changes
This commit is contained in:
HarpyWar 2014-08-30 16:32:38 +04:00
parent 5008da5b3d
commit 434ec4758a
6 changed files with 11 additions and 13 deletions

View file

@ -45,8 +45,8 @@ function handle_command(account, text)
for cmd,func in pairs(cmdlist) do
if string.starts(text, cmd) then
-- check if command group is in account.commandgroups
if math_and(account.commandgroups, cg) == 0 then
-- check if command group is in account commandgroups
if math_and(account_get_auth_command_groups(account.name), cg) == 0 then
api.message_send_text(account.name, message_type_error, account.name, localize(account.name, "This command is reserved for admins."))
return -1
end

View file

@ -607,8 +607,6 @@ namespace pvpgn
// log command
if (t_account * account = conn_get_account(c))
userlog_append(account, text);
// TODO: modify all commands to return "0" only if success, and "-1" if not
}
return result;
}

View file

@ -285,7 +285,7 @@ namespace pvpgn
}
catch (const std::exception& e)
{
ERROR2("Can't format translation string \"%s\" (%s)", fmt, e.what());
WARN2("Can't format translation string \"%s\" (%s)", fmt, e.what());
}
return output;

View file

@ -220,7 +220,8 @@ namespace pvpgn
switch ((t_attr_type)attrtype)
{
case attr_type_str:
attrvalue = account_get_strattr(account, attrkey);
if (const char * val = account_get_strattr(account, attrkey))
attrvalue = val;
break;
case attr_type_num:
attrvalue = std_to_string(account_get_numattr(account, attrkey));
@ -229,7 +230,8 @@ namespace pvpgn
attrvalue = account_get_boolattr(account, attrkey) == 0 ? "false" : "true";
break;
case attr_type_raw:
attrvalue = account_get_rawattr(account, attrkey);
if (const char * val = account_get_rawattr(account, attrkey))
attrvalue = val;
break;
}
}
@ -520,7 +522,7 @@ namespace pvpgn
return 1;
}
/* Get usernames online. If allaccounts = true then return all server users */
/* Get usernames online. If allaccounts = true then return all accounts that were used by the server since start */
extern int __server_get_users(lua_State* L)
{
bool allaccounts = false;

View file

@ -220,6 +220,7 @@ namespace pvpgn
config.update("version_exeinfo_maxdiff", prefs_get_version_exeinfo_maxdiff());
config.update("usersync", prefs_get_user_sync_timer());
config.update("userflush", prefs_get_user_flush_timer());
config.update("userflush_connected", prefs_get_user_flush_connected());
config.update("userstep", prefs_get_user_step());
config.update("latency", prefs_get_latency());
config.update("nullmsg", prefs_get_nullmsg());

View file

@ -95,13 +95,10 @@ namespace pvpgn
if (!account)
return o_account;
// DO NOT ADD FIELDS FROM A DATABASE HERE - IT WILL CAUSE WASTE SQL QUERIES WHEN ITERATE ALL CONNECTIONS
o_account["id"] = std_to_string(account_get_uid(account));
o_account["name"] = account_get_name(account);
if (const char * email = account_get_email(account)) // email can be empty
o_account["email"] = email;
o_account["commandgroups"] = std_to_string(account_get_command_groups(account));
o_account["locked"] = account_get_auth_lock(account) ? "true" : "false";
o_account["muted"] = account_get_auth_mute(account) ? "true" : "false";
o_account["online"] = "false"; // set init as offline