diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-05-26 04:51:05 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-05-26 04:51:05 +0100 |
commit | 173ba6433a1303ac24f0b29708f04e4f5c7e62b1 (patch) | |
tree | 132beb2d75693d27f6b3796571a2ee79c73339f6 /plugins/mod_watchregistrations.lua | |
parent | e76bc541aa96c70ddb4f814f394111b653fa026b (diff) | |
download | prosody-173ba6433a1303ac24f0b29708f04e4f5c7e62b1.tar.gz prosody-173ba6433a1303ac24f0b29708f04e4f5c7e62b1.zip |
mod_watchregistrations: New plugin to send a message to admins when a new user registers
Diffstat (limited to 'plugins/mod_watchregistrations.lua')
-rw-r--r-- | plugins/mod_watchregistrations.lua | 25 |
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); |