aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-05-26 04:51:05 +0100
committerMatthew Wild <mwild1@gmail.com>2009-05-26 04:51:05 +0100
commit173ba6433a1303ac24f0b29708f04e4f5c7e62b1 (patch)
tree132beb2d75693d27f6b3796571a2ee79c73339f6
parente76bc541aa96c70ddb4f814f394111b653fa026b (diff)
downloadprosody-173ba6433a1303ac24f0b29708f04e4f5c7e62b1.tar.gz
prosody-173ba6433a1303ac24f0b29708f04e4f5c7e62b1.zip
mod_watchregistrations: New plugin to send a message to admins when a new user registers
-rw-r--r--plugins/mod_watchregistrations.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/plugins/mod_watchregistrations.lua b/plugins/mod_watchregistrations.lua
new file mode 100644
index 00000000..6970422d
--- /dev/null
+++ b/plugins/mod_watchregistrations.lua
@@ -0,0 +1,25 @@
+
+local host = module:get_host();
+
+local config = require "core.configmanager";
+
+local registration_watchers = config.get(host, "core", "registration_watchers")
+ or config.get(host, "core", "admin") or {};
+
+local registration_alert = config.get(host, "core", "registration_notification") or "User $username just registered on $host from $ip";
+
+local st = require "util.stanza";
+
+module:add_event_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);