Mercurial > prosody-modules
view mod_muc_local_only/mod_muc_local_only.lua @ 5149:fa56ed2bacab
mod_unified_push: Add support for multiple token backends, including stoage
Now that we have ACLs by default, it is no longer necessary to be completely
stateless. On 0.12, using storage has benefits over JWT, because it does not
expose client JIDs to the push apps/services. In trunk, PASETO is stateless
and does not expose client JIDs.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 14 Jan 2023 14:31:37 +0000 |
parents | 221b6bee26e2 |
children |
line wrap: on
line source
local jid = require "util.jid"; local st = require "util.stanza"; local local_rooms = module:get_option_inherited_set("muc_local_only", {}); module:hook("muc-occupant-pre-join", function (event) local room = event.room; if not local_rooms:contains(room.jid) then return; -- Not a protected room, ignore end local user_jid = event.occupant.bare_jid; local user_host = jid.host(user_jid); if not prosody.hosts[user_host] then local error_reply = st.error_reply(event.stanza, "cancel", "forbidden", "This group is only available to local users", room.jid); event.origin.send(error_reply); return true; end room:set_affiliation(true, user_jid, "member", "Granting access to local user"); end);