Annotate

plugins/mod_watchregistrations.lua @ 7860:49ff363f3a3d

mod_watchregistrations: add a "registration_from" option This option, if set, makes all registration notifications come from a single JID, regardless of which virtualhost it comes from.
author mathieui
date Tue, 24 Jan 2017 21:13:23 +0100
parent 7268:29861845e0e0
child 8154:6300394bb713
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1522
569d58d21612 Add copyright header to those files missing one
Matthew Wild <mwild1@gmail.com>
parents: 1251
diff changeset
1 -- Prosody IM
2923
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 1654
diff changeset
2 -- Copyright (C) 2008-2010 Matthew Wild
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 1654
diff changeset
3 -- Copyright (C) 2008-2010 Waqas Hussain
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 5014
diff changeset
4 --
1522
569d58d21612 Add copyright header to those files missing one
Matthew Wild <mwild1@gmail.com>
parents: 1251
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
569d58d21612 Add copyright header to those files missing one
Matthew Wild <mwild1@gmail.com>
parents: 1251
diff changeset
6 -- COPYING file in the source package for more information.
569d58d21612 Add copyright header to those files missing one
Matthew Wild <mwild1@gmail.com>
parents: 1251
diff changeset
7 --
569d58d21612 Add copyright header to those files missing one
Matthew Wild <mwild1@gmail.com>
parents: 1251
diff changeset
8
1201
9d5c1b2cf89c mod_watchregistrations: New plugin to send a message to admins when a new user registers
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
9d5c1b2cf89c mod_watchregistrations: New plugin to send a message to admins when a new user registers
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local host = module:get_host();
4909
01bfb9a76660 mod_watchregistrations: Convert JID list to a set, and prep before use to fix traceback on invalid JIDs (thanks sMi)
Matthew Wild <mwild1@gmail.com>
parents: 4453
diff changeset
11 local jid_prep = require "util.jid".prep;
1201
9d5c1b2cf89c mod_watchregistrations: New plugin to send a message to admins when a new user registers
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
4909
01bfb9a76660 mod_watchregistrations: Convert JID list to a set, and prep before use to fix traceback on invalid JIDs (thanks sMi)
Matthew Wild <mwild1@gmail.com>
parents: 4453
diff changeset
13 local registration_watchers = module:get_option_set("registration_watchers", module:get_option("admins", {})) / jid_prep;
7860
49ff363f3a3d mod_watchregistrations: add a "registration_from" option
mathieui
parents: 7268
diff changeset
14 local registration_from = module:get_option_string("registration_from", host);
7268
29861845e0e0 mod_watchregistrations: Use type-specific config API for 'registration_notification'
Kim Alvefur <zash@zash.se>
parents: 5776
diff changeset
15 local registration_notification = module:get_option_string("registration_notification", "User $username just registered on $host from $ip");
1201
9d5c1b2cf89c mod_watchregistrations: New plugin to send a message to admins when a new user registers
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
9d5c1b2cf89c mod_watchregistrations: New plugin to send a message to admins when a new user registers
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 local st = require "util.stanza";
9d5c1b2cf89c mod_watchregistrations: New plugin to send a message to admins when a new user registers
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18
4391
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
19 module:hook("user-registered", function (user)
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
20 module:log("debug", "Notifying of new registration");
7860
49ff363f3a3d mod_watchregistrations: add a "registration_from" option
mathieui
parents: 7268
diff changeset
21 local message = st.message{ type = "chat", from = registration_from }
4391
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
22 :tag("body")
4453
7dc743378e1e mod_watchregistrations: Fixed an undefined global access (thanks Medics).
Waqas Hussain <waqas20@gmail.com>
parents: 4391
diff changeset
23 :text(registration_notification:gsub("%$(%w+)", function (v)
4391
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
24 return user[v] or user.session and user.session[v] or nil;
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
25 end));
4909
01bfb9a76660 mod_watchregistrations: Convert JID list to a set, and prep before use to fix traceback on invalid JIDs (thanks sMi)
Matthew Wild <mwild1@gmail.com>
parents: 4453
diff changeset
26 for jid in registration_watchers do
4391
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
27 module:log("debug", "Notifying %s", jid);
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
28 message.attr.to = jid;
5014
b2006c1cfa85 mod_announce, mod_motd, mod_pubsub, mod_register, mod_watchregistrations, mod_welcome: Use module:send() instead of core_*_stanza()
Kim Alvefur <zash@zash.se>
parents: 4909
diff changeset
29 module:send(message);
4391
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
30 end
71083327f608 mod_watchregistrations: Update to pass default options to module:get_option(), and reformat the code a little
Matthew Wild <mwild1@gmail.com>
parents: 3540
diff changeset
31 end);