Mercurial > prosody-modules
changeset 5162:243c156074d3
mod_muc_auto_member: New module to automatically make MUC participants members
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 30 Jan 2023 15:07:31 +0000 |
parents | 6af2d74daa15 |
children | 41fbed2de482 |
files | mod_muc_auto_member/README.markdown mod_muc_auto_member/mod_muc_auto_member.lua |
diffstat | 2 files changed, 41 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /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.
--- /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);