# HG changeset patch # User Matthew Wild # Date 1675091251 0 # Node ID 243c156074d31177a18afaa5519e524792088081 # Parent 6af2d74daa157cafa3a50a33633527ed51e9e962 mod_muc_auto_member: New module to automatically make MUC participants members diff -r 6af2d74daa15 -r 243c156074d3 mod_muc_auto_member/README.markdown --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_muc_auto_member/README.markdown Mon Jan 30 15:07:31 2023 +0000 @@ -0,0 +1,33 @@ +--- +labels: +- 'Stage-Beta' +summary: "Automatically register new MUC participants as members" +... + +# Introduction + +This module automatically makes anybody who joins a MUC become a registered +member. This can be useful for certain use cases. + +Note: there is no automatic cleanup of members. If you enable this on a server +with busy public channels, your member list will perpetually increase in size. + +Also, there is currently no per-room option for this behaviour. That may be +added in the future, along with membership expiry. + +# Configuration + +There is currently no configuration for this module. The module should be +enabled on your MUC component, i.e. in the modules_enabled option under your +Component: + +``` {.lua} +Component "conference.example.com" "muc" + modules_enabled = { + "muc_auto_member"; + } +``` + +# Compatibility + +0.12 and later. diff -r 6af2d74daa15 -r 243c156074d3 mod_muc_auto_member/mod_muc_auto_member.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_muc_auto_member/mod_muc_auto_member.lua Mon Jan 30 15:07:31 2023 +0000 @@ -0,0 +1,8 @@ +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);