mod_invites_adhoc: Fail contact invite if user is not on current host
Only the username was being used, and the host of the requester ignored.
Luckily this only affects admins of the host. If they want to create an
account they can use the other command. If they want to create a contact
they should request from their account on this host.
module:set_global();
local measure = require"core.statsmanager".measure;
local valid_shows = {
available = true,
chat = true,
away = true,
dnd = true,
xa = true,
unavailable = true,
}
local counters = {
available = measure("amount", "client_presence.available"),
chat = measure("amount", "client_presence.chat"),
away = measure("amount", "client_presence.away"),
dnd = measure("amount", "client_presence.dnd"),
xa = measure("amount", "client_presence.xa"),
unavailable = measure("amount", "client_presence.unavailable"),
invalid = measure("amount", "client_presence.invalid");
};
module:hook("stats-update", function ()
local buckets = {
available = 0,
chat = 0,
away = 0,
dnd = 0,
xa = 0,
unavailable = 0,
invalid = 0,
};
for _, session in pairs(full_sessions) do
local status = "unavailable";
if session.presence then
status = session.presence:get_child_text("show") or "available";
end
if valid_shows[status] ~= nil then
buckets[status] = buckets[status] + 1;
else
buckets.invalid = buckets.invalid + 1;
end
end
for bucket, count in pairs(buckets) do
counters[bucket](count)
end
end)