Software /
code /
prosody-modules
File
mod_broadcast/mod_broadcast.lua @ 5466:398d936e77fb
mod_http_oauth2: Add support for the OpenID 'login_hint' parameter
This allows the client to suggest to the authorization screen which user
is trying to login, so they don't have to fill that in twice if they
already did so at the client.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 17 May 2023 18:49:22 +0200 |
parent | 1016:9f7c97e55593 |
line wrap: on
line source
local is_admin = require "core.usermanager".is_admin; local allowed_senders = module:get_option_set("broadcast_senders", {}); local from_address = module:get_option_string("broadcast_from"); local jid_bare = require "util.jid".bare; function send_to_online(message) local c = 0; for hostname, host_session in pairs(hosts) do if host_session.sessions then for username in pairs(host_session.sessions) do c = c + 1; message.attr.to = username.."@"..hostname; module:send(message); end end end return c; end function send_message(event) local stanza = event.stanza; local from = stanza.attr.from; if is_admin(from) or allowed_senders:contains(jid_bare(from)) then if from_address then stanza = st.clone(stanza); stanza.attr.from = from_address; end local c = send_to_online(stanza); module:log("debug", "Broadcast stanza from %s to %d online users", from, c); return true; else module:log("warn", "Broadcasting is not allowed for %s", from); end end module:hook("message/bare", send_message);