annotate mod_admin_notify/mod_admin_notify.lua @ 5223:8b2a36847912

mod_http_oauth2: Support HTTP Basic auth on token endpoint This is described in RFC 6749 section 2.3.1 and draft-ietf-oauth-v2-1-07 2.3.1 as the recommended way to transmit the client's credentials. The older spec even calls it the "client password", but the new spec clarifies that this is just another term for the client secret.
author Matthew Wild <mwild1@gmail.com>
date Tue, 07 Mar 2023 15:27:50 +0000
parents 44e18454e1e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4238
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local it = require "util.iterators";
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 local jid = require "util.jid";
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local set = require "util.set";
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 local st = require "util.stanza";
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local roles_store = module:open_store("roles", "map");
4274
44e18454e1e0 mod_admin_notify: Fix traceback when no admins listed in config
Matthew Wild <mwild1@gmail.com>
parents: 4238
diff changeset
7 local config_admins = module:get_option_inherited_set("admins", {}) / jid.prep;
4238
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local function append_host(username)
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 return username.."@"..module.host;
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 end
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 local function get_admins()
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 local role_admins = roles_store:get_all("prosody:admin") or {};
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local admins = config_admins + (set.new(it.to_array(it.keys(role_admins))) / append_host);
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 return admins;
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 function notify(text) --luacheck: ignore 131/notify
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 local base_msg = st.message({ from = module.host })
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 :text_tag("body", text);
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 for admin_jid in get_admins() do
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 local msg = st.clone(base_msg);
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 msg.attr.to = admin_jid;
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 module:send(msg);
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 end
e97c509fdbe3 mod_admin_notify: New module providing an API to notify host admins
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 end