From 3135c6bb228bcf450c1f63d2851e78783e3d650b Mon Sep 17 00:00:00 2001
From: Anton Georgiev <anto.georgiev@gmail.com>
Date: Tue, 5 Jan 2021 15:38:21 +0000
Subject: [PATCH] Handle guestWait url for multiple nodejs instanceIds

---
 .../imports/ui/components/user-list/service.js              | 1 -
 bigbluebutton-web/grails-app/conf/bigbluebutton.properties  | 2 +-
 .../org/bigbluebutton/web/controllers/ApiController.groovy  | 6 +++++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/bigbluebutton-html5/imports/ui/components/user-list/service.js b/bigbluebutton-html5/imports/ui/components/user-list/service.js
index 98ae2de3a3..e9621a3041 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/service.js
+++ b/bigbluebutton-html5/imports/ui/components/user-list/service.js
@@ -195,7 +195,6 @@ const getUsers = () => {
   let users = Users
     .find({
       meetingId: Auth.meetingID,
-      authed: true,
     }, userFindSorting)
     .fetch();
 
diff --git a/bigbluebutton-web/grails-app/conf/bigbluebutton.properties b/bigbluebutton-web/grails-app/conf/bigbluebutton.properties
index 2882561697..6979e3fb5d 100755
--- a/bigbluebutton-web/grails-app/conf/bigbluebutton.properties
+++ b/bigbluebutton-web/grails-app/conf/bigbluebutton.properties
@@ -251,7 +251,7 @@ defaultHTML5ClientUrl=${bigbluebutton.web.serverURL}/html5client/%%INSTANCEID%%/
 allowRequestsWithoutSession=false
 
 # The url for where the guest will poll if approved to join or not.
-defaultGuestWaitURL=${bigbluebutton.web.serverURL}/html5client/guestWait
+defaultGuestWaitURL=${bigbluebutton.web.serverURL}/html5client/%%INSTANCEID%%/guestWait
 
 # The default avatar image to display.
 useDefaultAvatar=false
diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
index 98a89a413a..e1eb9a7a3c 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
@@ -524,6 +524,7 @@ class ApiController {
     String destUrl = clientURL + "?sessionToken=" + sessionToken
     if (guestStatusVal.equals(GuestPolicy.WAIT)) {
       String guestWaitUrl = paramsProcessorUtil.getDefaultGuestWaitURL();
+      guestWaitUrl = guestWaitUrl.replaceAll("%%INSTANCEID%%", meetingInstance);
       destUrl = guestWaitUrl + "?sessionToken=" + sessionToken
       msgKey = "guestWait"
       msgValue = "Guest waiting for approval to join meeting."
@@ -1353,10 +1354,13 @@ class ApiController {
       String destUrl = clientURL
       log.debug("destUrl = " + destUrl)
 
+      String meetingInstance = meeting.getHtml5InstanceId();
+      meetingInstance = (meetingInstance == null) ? "1" : meetingInstance;
 
       if (guestWaitStatus.equals(GuestPolicy.WAIT)) {
-        meetingService.guestIsWaiting(userSession.meetingID, userSession.internalUserId);
+        meetingService.guestIsWaiting(us.meetingID, us.internalUserId);
         clientURL = paramsProcessorUtil.getDefaultGuestWaitURL();
+        clientURL = clientURL.replaceAll("%%INSTANCEID%%", meetingInstance);
         destUrl = clientURL + "?sessionToken=" + sessionToken
         log.debug("GuestPolicy.WAIT - destUrl = " + destUrl)
         msgKey = "guestWait"
-- 
GitLab