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.
-- Prosody IM
-- Copyright (C) 2008-2010 Matthew Wild
-- Copyright (C) 2008-2010 Waqas Hussain
-- Copyright (C) 2010 Jeff Mitchell
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--
local core_route_stanza = prosody.core_route_stanza;
local host = module:get_host();
local motd_jid = module:get_option("motd_jid") or host;
local datamanager = require "util.datamanager";
local ipairs = ipairs;
local motd_sequential_messages = module:get_option("motd_sequential_messages") or {};
local motd_messagesets = {};
local max = 1;
for i, message in ipairs(motd_sequential_messages) do
motd_messagesets[i] = message;
max = i;
end
local st = require "util.stanza";
module:hook("resource-bind",
function (event)
local session = event.session;
local alreadyseen_list = datamanager.load(session.username, session.host, "motd_sequential_seen") or { max = 0 };
local alreadyseen = alreadyseen_list["max"] + 1;
local motd_stanza;
for i = alreadyseen, max do
motd_stanza =
st.message({ to = session.username..'@'..session.host, from = motd_jid },
motd_messagesets[i]);
core_route_stanza(hosts[host], motd_stanza);
module:log("debug", "MOTD send to user %s@%s", session.username, session.host);
end
alreadyseen_list["max"] = max;
datamanager.store(session.username, session.host, "motd_sequential_seen", alreadyseen_list);
end);