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";