|
@@ -166,7 +166,7 @@ function attach_lobby_room(room)
|
166
|
166
|
new_room:set_persistent(true);
|
167
|
167
|
module:log("debug","Lobby room jid = %s created",lobby_room_jid);
|
168
|
168
|
new_room.main_room = room;
|
169
|
|
- room._data.lobbyroom = new_room;
|
|
169
|
+ room._data.lobbyroom = new_room.jid;
|
170
|
170
|
room:save(true);
|
171
|
171
|
return true
|
172
|
172
|
end
|
|
@@ -178,9 +178,12 @@ function destroy_lobby_room(room, newjid, message)
|
178
|
178
|
if not message then
|
179
|
179
|
message = 'Lobby room closed.';
|
180
|
180
|
end
|
181
|
|
- if room and room._data.lobbyroom then
|
182
|
|
- room._data.lobbyroom:set_persistent(false);
|
183
|
|
- room._data.lobbyroom:destroy(newjid, message);
|
|
181
|
+ if lobby_muc_service and room and room._data.lobbyroom then
|
|
182
|
+ local lobby_room_obj = lobby_muc_service.get_room_from_jid(room._data.lobbyroom);
|
|
183
|
+ if lobby_room_obj then
|
|
184
|
+ lobby_room_obj:set_persistent(false);
|
|
185
|
+ lobby_room_obj:destroy(newjid, message);
|
|
186
|
+ end
|
184
|
187
|
room._data.lobbyroom = nil;
|
185
|
188
|
end
|
186
|
189
|
end
|
|
@@ -315,7 +318,7 @@ process_host_module(main_muc_component_config, function(host_module, host)
|
315
|
318
|
label = 'Lobby room jid';
|
316
|
319
|
value = '';
|
317
|
320
|
});
|
318
|
|
- event.formdata['muc#roominfo_lobbyroom'] = room._data.lobbyroom.jid;
|
|
321
|
+ event.formdata['muc#roominfo_lobbyroom'] = room._data.lobbyroom;
|
319
|
322
|
end
|
320
|
323
|
end);
|
321
|
324
|
|
|
@@ -364,7 +367,7 @@ process_host_module(main_muc_component_config, function(host_module, host)
|
364
|
367
|
local reply = st.error_reply(stanza, 'auth', 'registration-required'):up();
|
365
|
368
|
reply.tags[1].attr.code = '407';
|
366
|
369
|
reply:tag('x', {xmlns = MUC_NS}):up();
|
367
|
|
- reply:tag('lobbyroom'):text(room._data.lobbyroom.jid);
|
|
370
|
+ reply:tag('lobbyroom'):text(room._data.lobbyroom);
|
368
|
371
|
event.origin.send(reply:tag('x', {xmlns = MUC_NS}));
|
369
|
372
|
return true;
|
370
|
373
|
end
|
|
@@ -377,13 +380,16 @@ process_host_module(main_muc_component_config, function(host_module, host)
|
377
|
380
|
local from = stanza:get_child('x', 'http://jabber.org/protocol/muc#user')
|
378
|
381
|
:get_child('invite').attr.from;
|
379
|
382
|
|
380
|
|
- if room._data.lobbyroom then
|
381
|
|
- local occupant = room._data.lobbyroom:get_occupant_by_real_jid(invitee);
|
382
|
|
- if occupant then
|
383
|
|
- local display_name = occupant:get_presence():get_child_text(
|
384
|
|
- 'nick', 'http://jabber.org/protocol/nick');
|
|
383
|
+ if lobby_muc_service and room._data.lobbyroom then
|
|
384
|
+ local lobby_room_obj = lobby_muc_service.get_room_from_jid(room._data.lobbyroom);
|
|
385
|
+ if lobby_room_obj then
|
|
386
|
+ local occupant = lobby_room_obj:get_occupant_by_real_jid(invitee);
|
|
387
|
+ if occupant then
|
|
388
|
+ local display_name = occupant:get_presence():get_child_text(
|
|
389
|
+ 'nick', 'http://jabber.org/protocol/nick');
|
385
|
390
|
|
386
|
|
- notify_lobby_access(room, from, occupant.nick, display_name, true);
|
|
391
|
+ notify_lobby_access(room, from, occupant.nick, display_name, true);
|
|
392
|
+ end
|
387
|
393
|
end
|
388
|
394
|
end
|
389
|
395
|
end);
|