X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_watchregistrations.lua;h=abca90bdab36103d3fb3ab16c0d42a2e923b8a84;hb=d631eea82c5144b9c2142b32affdb0ba4f878a43;hp=9457313f6b08f07d7e191d8dc2f6326b4f53e20c;hpb=82aa9c749335a601ec308148ce95e3c680ad7705;p=prosody.git diff --git a/plugins/mod_watchregistrations.lua b/plugins/mod_watchregistrations.lua index 9457313f..abca90bd 100644 --- a/plugins/mod_watchregistrations.lua +++ b/plugins/mod_watchregistrations.lua @@ -1,6 +1,6 @@ -- Prosody IM --- Copyright (C) 2008-2009 Matthew Wild --- Copyright (C) 2008-2009 Waqas Hussain +-- Copyright (C) 2008-2010 Matthew Wild +-- Copyright (C) 2008-2010 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. @@ -8,27 +8,23 @@ local host = module:get_host(); +local jid_prep = require "util.jid".prep; -local config = require "core.configmanager"; - -local registration_watchers = config.get(host, "core", "registration_watchers") - or config.get(host, "core", "admins") or {}; - -local registration_alert = config.get(host, "core", "registration_notification") or "User $username just registered on $host from $ip"; +local registration_watchers = module:get_option_set("registration_watchers", module:get_option("admins", {})) / jid_prep; +local registration_notification = module:get_option("registration_notification", "User $username just registered on $host from $ip"); local st = require "util.stanza"; -module:hook("user-registered", - function (user) - module:log("debug", "Notifying of new registration"); - local message = st.message{ type = "chat", from = host } - :tag("body") - :text(registration_alert:gsub("%$(%w+)", - function (v) return user[v] or user.session and user.session[v] or nil; end)); - - for _, jid in ipairs(registration_watchers) do - module:log("debug", "Notifying %s", jid); - message.attr.to = jid; - core_route_stanza(hosts[host], message); - end - end); +module:hook("user-registered", function (user) + module:log("debug", "Notifying of new registration"); + local message = st.message{ type = "chat", from = host } + :tag("body") + :text(registration_notification:gsub("%$(%w+)", function (v) + return user[v] or user.session and user.session[v] or nil; + end)); + for jid in registration_watchers do + module:log("debug", "Notifying %s", jid); + message.attr.to = jid; + module:send(message); + end +end);