Sfoglia il codice sorgente

fix(breakout-rooms) fix when using tenants

master
Saúl Ibarra Corretgé 3 anni fa
parent
commit
0be0d6a76e
1 ha cambiato i file con 9 aggiunte e 6 eliminazioni
  1. 9
    6
      resources/prosody-plugins/mod_muc_breakout_rooms.lua

+ 9
- 6
resources/prosody-plugins/mod_muc_breakout_rooms.lua Vedi File

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

Loading…
Annulla
Salva