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.lua36
1 files changed, 17 insertions, 19 deletions
diff --git a/plugins/mod_watchregistrations.lua b/plugins/mod_watchregistrations.lua
index ac1e6302..b7be5daf 100644
--- a/plugins/mod_watchregistrations.lua
+++ b/plugins/mod_watchregistrations.lua
@@ -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("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);