view mod_muc_auto_member/mod_muc_auto_member.lua @ 5381:32a9817c7516

mod_firewall: Initialize compiled chunk just once for all handlers This should fix a case where some stateful dependencies (such as throttles) produce separate instances for every call to new_handler(), leading to surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would have separate rate limits). This also adds better error handling in case the compiled code fails to run for some reason.
author Matthew Wild <mwild1@gmail.com>
date Fri, 28 Apr 2023 13:27:06 +0100
parents 243c156074d3
children
line wrap: on
line source

module:hook("muc-occupant-joined", function (event)
	local room = event.room;
	local occupant_jid = event.occupant.bare_jid;
	local aff = room:get_affiliation(occupant_jid);
	if aff then return; end -- user already registered
	module:log("debug", "Automatically registering %s as a member in %s", occupant_jid, room.jid);
	room:set_affiliation(true, occupant_jid, "member");
end);