Software / code / prosody-modules
Annotate
mod_admin_notify/mod_admin_notify.lua @ 6303:d73cae8d80ce
mod_cloud_notify: actually fix labels
diff --git a/mod_cloud_notify/README.md b/mod_cloud_notify/README.md
--- a/mod_cloud_notify/README.md
+++ b/mod_cloud_notify/README.md
@@ -1,7 +1,7 @@
----
--labels:
--- 'Stage-Beta'
--summary: 'XEP-0357: Cloud push notifications'
+labels:
+- 'Stage-Beta'
+summary: 'XEP-0357: Cloud push notifications'
----
# Introduction
| author | Menel <menel@snikket.de> |
|---|---|
| date | Fri, 13 Jun 2025 10:48:20 +0200 |
| parent | 4274:44e18454e1e0 |
| 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 |