aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_watchregistrations.lua
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mod_watchregistrations.lua')
-rw-r--r--plugins/mod_watchregistrations.lua40
1 files changed, 18 insertions, 22 deletions
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);