Mercurial > prosody-modules
annotate 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 |
rev | line source |
---|---|
5162
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 module:hook("muc-occupant-joined", function (event) |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 local room = event.room; |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 local occupant_jid = event.occupant.bare_jid; |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 local aff = room:get_affiliation(occupant_jid); |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 if aff then return; end -- user already registered |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 module:log("debug", "Automatically registering %s as a member in %s", occupant_jid, room.jid); |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 room:set_affiliation(true, occupant_jid, "member"); |
243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 end); |