Mercurial > prosody-hg
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 |
| parents | d539cb48c6e9 |
| children | 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"; |
