diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx index a03b7a9a992a0f487f89bb0bd6bb10d450cdd286..7bd1a5a9e797e715b835b7e3587e7189699f19f2 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/component.jsx @@ -33,6 +33,7 @@ const propTypes = { hasBreakoutRoom: PropTypes.bool.isRequired, isBreakoutEnabled: PropTypes.bool.isRequired, isBreakoutRecordable: PropTypes.bool.isRequired, + dynamicGuestPolicy: PropTypes.bool.isRequired, }; const intlMessages = defineMessages({ @@ -228,6 +229,7 @@ class UserOptions extends PureComponent { amIModerator, users, isMeteorConnected, + dynamicGuestPolicy, } = this.props; const canCreateBreakout = amIModerator @@ -292,7 +294,7 @@ class UserOptions extends PureComponent { /> ) : null ), - (!meetingIsBreakout && isMeteorConnected ? ( + (!meetingIsBreakout && isMeteorConnected && dynamicGuestPolicy ? ( <DropdownListItem key={this.guestPolicyId} icon="user" diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx index a6b4bfa1eab8f905378567b7c5f7a41ace13df2a..214e479ddce5f99466f28f39a2886107a03e60c9 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/user-options/container.jsx @@ -23,6 +23,8 @@ const intlMessages = defineMessages({ }, }); +const dynamicGuestPolicy = Meteor.settings.public.app.dynamicGuestPolicy; + const meetingMuteDisabledLog = () => logger.info({ logCode: 'useroptions_unmute_all', extraInfo: { logType: 'moderator_action' }, @@ -89,6 +91,7 @@ const UserOptionsContainer = withTracker((props) => { guestPolicy: WaitingUsersService.getGuestPolicy(), isMeteorConnected: Meteor.status().connected, meetingName: getMeetingName(), + dynamicGuestPolicy, }; })(UserOptions); diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx b/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx index 853113f49e86d30a14b80de6760982479f6f6110..427f45d19ab3752e721e6eb16097659d6095ab6e 100755 --- a/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/waiting-users/component.jsx @@ -169,6 +169,7 @@ const WaitingUsers = (props) => { setGuestLobbyMessage, guestLobbyMessage, authenticatedGuest, + allowRememberChoice, } = props; const onCheckBoxChange = (e) => { @@ -227,7 +228,7 @@ const WaitingUsers = (props) => { }, ]; - const buttonsData = authenticatedGuest ? _.concat(authGuestButtonsData , guestButtonsData) : guestButtonsData; + const buttonsData = authenticatedGuest ? _.concat(authGuestButtonsData, guestButtonsData) : guestButtonsData; return ( <div @@ -270,12 +271,15 @@ const WaitingUsers = (props) => { )) } </div> - <div className={styles.rememberContainer}> - <input id="rememderCheckboxId" type="checkbox" onChange={onCheckBoxChange} /> - <label htmlFor="rememderCheckboxId"> - {intl.formatMessage(intlMessages.rememberChoice)} - </label> - </div> + + {allowRememberChoice ? ( + <div className={styles.rememberContainer}> + <input id="rememderCheckboxId" type="checkbox" onChange={onCheckBoxChange} /> + <label htmlFor="rememderCheckboxId"> + {intl.formatMessage(intlMessages.rememberChoice)} + </label> + </div> + ) : null} </div> {renderPendingUsers( intl.formatMessage(intlMessages.pendingUsers, diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx b/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx index 0341da5a5daa35ba6496687121c5988b23fbb5fc..98843fc492a956477c28ff9700c5ee229f04e884 100644 --- a/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/waiting-users/container.jsx @@ -42,5 +42,6 @@ export default withTracker(() => { setGuestLobbyMessage: Service.setGuestLobbyMessage, guestLobbyMessage: Service.getGuestLobbyMessage(), authenticatedGuest, + allowRememberChoice: Service.allowRememberChoice, }; })(WaitingContainer); diff --git a/bigbluebutton-html5/imports/ui/components/waiting-users/service.js b/bigbluebutton-html5/imports/ui/components/waiting-users/service.js index 190d2fbf15dee94a59702e665544f48ebf0be731..ab1d2a195f3fa065fadf1ff54ae72a0c7263fa07 100644 --- a/bigbluebutton-html5/imports/ui/components/waiting-users/service.js +++ b/bigbluebutton-html5/imports/ui/components/waiting-users/service.js @@ -17,6 +17,9 @@ const getGuestPolicy = () => { const isGuestLobbyMessageEnabled = Meteor.settings.public.app.enableGuestLobbyMessage; +// We use the dynamicGuestPolicy rule for allowing the rememberChoice checkbox +const allowRememberChoice = Meteor.settings.public.app.dynamicGuestPolicy; + const getGuestLobbyMessage = () => { const meeting = Meetings.findOne( { meetingId: Auth.meetingID }, @@ -37,4 +40,5 @@ export default { isGuestLobbyMessageEnabled, getGuestLobbyMessage, setGuestLobbyMessage, + allowRememberChoice, }; diff --git a/bigbluebutton-html5/private/config/settings.yml b/bigbluebutton-html5/private/config/settings.yml index ab6ae7d67b176624a2affcdc25ff71e4cd2ceb81..ae0acc99ea575692bdb0fac7e81a5eb63aa64464 100755 --- a/bigbluebutton-html5/private/config/settings.yml +++ b/bigbluebutton-html5/private/config/settings.yml @@ -40,6 +40,7 @@ public: # in some cases we want only custom logoutUrl to be used when provided on meeting create. Default value: true allowDefaultLogoutUrl: true allowUserLookup: false + dynamicGuestPolicy: true enableGuestLobbyMessage: true enableNetworkInformation: false enableLimitOfViewersInWebcam: false