Diff

plugins/muc/muc.lib.lua @ 6206:f937bb5c83c3

plugins/muc: Move locking to seperate module
author daurnimator <quae@daurnimator.com>
date Wed, 02 Apr 2014 15:48:25 -0400
parent 6204:c3254827698d
child 6208:d724289a5226
line wrap: on
line diff
--- a/plugins/muc/muc.lib.lua	Wed Apr 02 15:36:08 2014 -0400
+++ b/plugins/muc/muc.lib.lua	Wed Apr 02 15:48:25 2014 -0400
@@ -87,18 +87,6 @@
 	end
 end
 
-function room_mt:lock()
-	module:fire_event("muc-room-locked", { room = self });
-	self.locked = true
-end
-function room_mt:unlock()
-	module:fire_event("muc-room-unlocked", { room = self });
-	self.locked = nil
-end
-function room_mt:is_locked()
-	return not not self.locked
-end
-
 --- Occupant functions
 function room_mt:new_occupant(bare_real_jid, nick)
 	local occupant = occupant_lib.new(bare_real_jid, nick);
@@ -583,13 +571,6 @@
 	return self._data.whois;
 end
 
-module:hook("muc-room-pre-create", function(event)
-	local room = event.room;
-	if room:is_locked() and not event.stanza:get_child("x", "http://jabber.org/protocol/muc") then
-		room:unlock(); -- Older groupchat protocol doesn't lock
-	end
-end, 10);
-
 -- Give the room creator owner affiliation
 module:hook("muc-room-pre-create", function(event)
 	event.room:set_affiliation(true, jid_bare(event.stanza.attr.from), "owner");
@@ -610,13 +591,6 @@
 	end
 end, -20);
 
-module:hook("muc-occupant-pre-join", function(event)
-	if event.room:is_locked() then -- Deny entry
-		event.origin.send(st.error_reply(event.stanza, "cancel", "item-not-found"));
-		return true;
-	end
-end, -30);
-
 -- registration required for entering members-only room
 module:hook("muc-occupant-pre-join", function(event)
 	local room, stanza = event.room, event.stanza;
@@ -1006,9 +980,6 @@
 		module:fire_event("muc-config-submitted", event);
 
 		if self.save then self:save(true); end
-		if self:is_locked() then
-			self:unlock();
-		end
 		origin.send(st.reply(stanza));
 
 		if next(event.status_codes) then
@@ -1543,7 +1514,6 @@
 function _M.new_room(jid, config)
 	return setmetatable({
 		jid = jid;
-		locked = nil;
 		_jid_nick = {};
 		_occupants = {};
 		_data = {