Comparison

plugins/muc/mod_muc.lua @ 5808:026367992a0f

mod_muc: Support for locking newly-created rooms until they are configured (enabled with muc_room_locking = true)
author Matthew Wild <mwild1@gmail.com>
date Fri, 30 Aug 2013 14:15:29 +0100
parent 5807:d7212bd61b60
child 5939:56d81af64fc5
comparison
equal deleted inserted replaced
5807:d7212bd61b60 5808:026367992a0f
21 restrict_room_creation = "admin"; 21 restrict_room_creation = "admin";
22 elseif restrict_room_creation ~= "admin" and restrict_room_creation ~= "local" then 22 elseif restrict_room_creation ~= "admin" and restrict_room_creation ~= "local" then
23 restrict_room_creation = nil; 23 restrict_room_creation = nil;
24 end 24 end
25 end 25 end
26 local lock_rooms = module:get_option_boolean("muc_room_locking", false);
27 local lock_room_timeout = module:get_option_number("muc_room_lock_timeout", 300);
28
26 local muclib = module:require "muc"; 29 local muclib = module:require "muc";
27 local muc_new_room = muclib.new_room; 30 local muc_new_room = muclib.new_room;
28 local jid_split = require "util.jid".split; 31 local jid_split = require "util.jid".split;
29 local jid_bare = require "util.jid".bare; 32 local jid_bare = require "util.jid".bare;
30 local st = require "util.stanza"; 33 local st = require "util.stanza";
86 function create_room(jid) 89 function create_room(jid)
87 local room = muc_new_room(jid); 90 local room = muc_new_room(jid);
88 room.route_stanza = room_route_stanza; 91 room.route_stanza = room_route_stanza;
89 room.save = room_save; 92 room.save = room_save;
90 rooms[jid] = room; 93 rooms[jid] = room;
94 if lock_rooms then
95 room.locked = true;
96 if lock_room_timeout and lock_room_timeout > 0 then
97 module:add_timer(lock_room_timeout, function ()
98 if room.locked then
99 room:destroy(); -- Not unlocked in time
100 end
101 end);
102 end
103 end
91 module:fire_event("muc-room-created", { room = room }); 104 module:fire_event("muc-room-created", { room = room });
92 return room; 105 return room;
93 end 106 end
94 107
95 local persistent_errors = false; 108 local persistent_errors = false;