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.lua30
1 files changed, 30 insertions, 0 deletions
diff --git a/plugins/mod_watchregistrations.lua b/plugins/mod_watchregistrations.lua
new file mode 100644
index 00000000..abca90bd
--- /dev/null
+++ b/plugins/mod_watchregistrations.lua
@@ -0,0 +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_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_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);