test_util_multitable: make mt variable local [luacheck]
[prosody.git] / plugins / mod_watchregistrations.lua
index ac1e63022aec66b9be587cecaf35530b899b4b45..1e696f30e1f72329b935cf5cdebdec067025054f 100644 (file)
@@ -1,32 +1,30 @@
 -- Prosody IM
 -- 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.
 --
 
 
 local host = module:get_host();
+local jid_prep = require "util.jid".prep;
 
-local registration_watchers = module:get_option("registration_watchers")
-       or module:get_option("admins") or {};
-
-local registration_alert = module:get_option("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_string("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);