Software /
code /
prosody-modules
File
mod_muc_auto_reserve_nicks/mod_muc_auto_reserve_nicks.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 |
parent | 4950:c83bc703825d |
line wrap: on
line source
local jid = require "util.jid"; local set = require "util.set"; local active_affiliations = set.new({ "member", "admin", "owner" }); module:hook("muc-occupant-joined", function (event) local room, occupant = event.room, event.occupant; local user_jid = occupant.bare_jid; local user_affiliation = room:get_affiliation(user_jid); if not active_affiliations:contains(user_affiliation) then return; end local aff_data = event.room:get_affiliation_data(user_jid); if not aff_data then local reserved_nick = jid.resource(occupant.nick); module:log("debug", "Automatically reserving nickname '%s' for <%s>", reserved_nick, user_jid); room:set_affiliation_data(user_jid, "reserved_nickname", reserved_nick); room._reserved_nicks = nil; -- force refresh of nickname map end end);