Explorar el Código

fix(breakout-rooms) fix when using tenants

master
Saúl Ibarra Corretgé hace 3 años
padre
commit
0be0d6a76e
Se han modificado 1 ficheros con 9 adiciones y 6 borrados
  1. 9
    6
      resources/prosody-plugins/mod_muc_breakout_rooms.lua

+ 9
- 6
resources/prosody-plugins/mod_muc_breakout_rooms.lua Ver fichero

@@ -31,6 +31,7 @@ local st = require 'util.stanza';
31 31
 local uuid_gen = require 'util.uuid'.generate;
32 32
 
33 33
 local util = module:require 'util';
34
+local internal_room_jid_match_rewrite = util.internal_room_jid_match_rewrite;
34 35
 local is_healthcheck_room = util.is_healthcheck_room;
35 36
 
36 37
 local BREAKOUT_ROOMS_IDENTITY_TYPE = 'breakout_rooms';
@@ -94,12 +95,13 @@ function get_participants(room)
94 95
     local participants = {};
95 96
 
96 97
     if room then
97
-        for nick, occupant in room:each_occupant() do
98
+        for room_nick, occupant in room:each_occupant() do
98 99
             -- Filter focus as we keep it as a hidden participant
99 100
             if jid_node(occupant.jid) ~= 'focus' then
100 101
                 local display_name = occupant:get_presence():get_child_text(
101 102
                     'nick', 'http://jabber.org/protocol/nick');
102
-                participants[nick] = {
103
+                local real_nick = internal_room_jid_match_rewrite(room_nick);
104
+                participants[real_nick] = {
103 105
                     jid = occupant.jid,
104 106
                     role = occupant.role,
105 107
                     displayName = display_name
@@ -125,12 +127,13 @@ function broadcast_breakout_rooms(room_jid)
125 127
         main_room._data.is_broadcast_breakout_scheduled = false;
126 128
         main_room:save(true);
127 129
 
128
-        local main_room_node = jid_node(main_room_jid)
130
+        local real_jid = internal_room_jid_match_rewrite(main_room_jid);
131
+        local real_node = jid_node(real_jid);
129 132
         local rooms = {
130
-            [main_room_node] = {
133
+            [real_node] = {
131 134
                 isMainRoom = true,
132
-                id = main_room_node,
133
-                jid = main_room_jid,
135
+                id = real_node,
136
+                jid = real_jid,
134 137
                 name = main_room._data.subject,
135 138
                 participants = get_participants(main_room)
136 139
             };

Loading…
Cancelar
Guardar