plugins/muc/lock.lib: lock inside of pre-create instead of 'created'
authordaurnimator <quae@daurnimator.com>
Tue, 29 Apr 2014 22:50:30 +0000 (18:50 -0400)
committerdaurnimator <quae@daurnimator.com>
Tue, 29 Apr 2014 22:50:30 +0000 (18:50 -0400)
plugins/muc/lock.lib.lua

index 7cf19be3696c63b0b13b8bd98175aba69f70e59b..319a69738f91c99fbf267485d00424004a841ce0 100644 (file)
@@ -23,7 +23,10 @@ local function is_locked(room)
 end
 
 if lock_rooms then
-       module:hook("muc-room-created", function(event)
+       module:hook("muc-room-pre-create", function(event)
+               -- Older groupchat protocol doesn't lock
+               if not event.stanza:get_child("x", "http://jabber.org/protocol/muc") then return end
+               -- Lock room at creation
                local room = event.room;
                lock(room);
                if lock_room_timeout and lock_room_timeout > 0 then
@@ -33,16 +36,9 @@ if lock_rooms then
                                end
                        end);
                end
-       end);
+       end, 10);
 end
 
--- Older groupchat protocol doesn't lock
-module:hook("muc-room-pre-create", function(event)
-       if is_locked(event.room) and not event.stanza:get_child("x", "http://jabber.org/protocol/muc") then
-               unlock(event.room);
-       end
-end, 10);
-
 -- Don't let users into room while it is locked
 module:hook("muc-occupant-pre-join", function(event)
        if not event.is_new_room and is_locked(event.room) then -- Deny entry