Software /
code /
prosody
Comparison
plugins/muc/mod_muc.lua @ 13495:47e1df2d0a37
MUC: Add per-room PM restriction functionality (thanks Wirlaburla)
Based on mod_muc_restrict_pm in prosody-modules d82c0383106a
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 23 May 2024 17:39:20 +0100 |
parent | 13308:d539cb48c6e9 |
child | 13496:3e6d5738ea09 |
comparison
equal
deleted
inserted
replaced
13494:4c3d6ed9c823 | 13495:47e1df2d0a37 |
---|---|
83 | 83 |
84 local register = module:require "muc/register"; | 84 local register = module:require "muc/register"; |
85 room_mt.get_registered_nick = register.get_registered_nick; | 85 room_mt.get_registered_nick = register.get_registered_nick; |
86 room_mt.get_registered_jid = register.get_registered_jid; | 86 room_mt.get_registered_jid = register.get_registered_jid; |
87 room_mt.handle_register_iq = register.handle_register_iq; | 87 room_mt.handle_register_iq = register.handle_register_iq; |
88 | |
89 local restrict_pm = module:require "muc/restrict_pm"; | |
90 room_mt.get_allow_pm = restrict_pm.get_allow_pm; | |
91 room_mt.set_allow_pm = restrict_pm.set_allow_pm; | |
92 room_mt.get_allow_modpm = restrict_pm.get_allow_modpm; | |
93 room_mt.set_allow_modpm = restrict_pm.set_allow_modpm; | |
88 | 94 |
89 local presence_broadcast = module:require "muc/presence_broadcast"; | 95 local presence_broadcast = module:require "muc/presence_broadcast"; |
90 room_mt.get_presence_broadcast = presence_broadcast.get; | 96 room_mt.get_presence_broadcast = presence_broadcast.get; |
91 room_mt.set_presence_broadcast = presence_broadcast.set; | 97 room_mt.set_presence_broadcast = presence_broadcast.set; |
92 room_mt.get_valid_broadcast_roles = presence_broadcast.get_valid_broadcast_roles; -- FIXME doesn't exist in the library | 98 room_mt.get_valid_broadcast_roles = presence_broadcast.get_valid_broadcast_roles; -- FIXME doesn't exist in the library |
291 room:set_changesubject(module:get_option_boolean("muc_room_default_change_subject", room:get_changesubject())); | 297 room:set_changesubject(module:get_option_boolean("muc_room_default_change_subject", room:get_changesubject())); |
292 room:set_historylength(module:get_option_integer("muc_room_default_history_length", room:get_historylength(), 0)); | 298 room:set_historylength(module:get_option_integer("muc_room_default_history_length", room:get_historylength(), 0)); |
293 room:set_language(lang or module:get_option_string("muc_room_default_language")); | 299 room:set_language(lang or module:get_option_string("muc_room_default_language")); |
294 room:set_presence_broadcast(module:get_option_enum("muc_room_default_presence_broadcast", room:get_presence_broadcast(), "visitor", "participant", | 300 room:set_presence_broadcast(module:get_option_enum("muc_room_default_presence_broadcast", room:get_presence_broadcast(), "visitor", "participant", |
295 "moderator")); | 301 "moderator")); |
302 room:set_allow_pm(module:get_option_enum("muc_room_default_allow_pm", room:get_allow_pm(), "visitor", "participant", "moderator")); | |
303 room:set_allow_modpm(module:get_option_boolean("muc_room_default_always_allow_moderator_pms", room:get_allow_modpm())); | |
296 end | 304 end |
297 | 305 |
298 function create_room(room_jid, config) | 306 function create_room(room_jid, config) |
299 if jid_bare(room_jid) ~= room_jid or not jid_prep(room_jid, true) then | 307 if jid_bare(room_jid) ~= room_jid or not jid_prep(room_jid, true) then |
300 return nil, "invalid-jid"; | 308 return nil, "invalid-jid"; |