diff --git a/bigbluebutton-html5/imports/ui/components/settings/component.jsx b/bigbluebutton-html5/imports/ui/components/settings/component.jsx index c27a3fc662571829d54f46e195df9abcbdfa6c94..fcf003f967d9ee2a180ea2c3d3ffcc9d16e0ff48 100644 --- a/bigbluebutton-html5/imports/ui/components/settings/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/settings/component.jsx @@ -164,6 +164,7 @@ class Settings extends Component { const { intl, isModerator, + showGuestNotification, showToggleLabel, } = this.props; @@ -219,6 +220,7 @@ class Settings extends Component { <Notification handleUpdateSettings={this.handleUpdateSettings} settings={current.application} + showGuestNotification={showGuestNotification} showToggleLabel={showToggleLabel} displaySettingsStatus={this.displaySettingsStatus} {...{ isModerator }} diff --git a/bigbluebutton-html5/imports/ui/components/settings/container.jsx b/bigbluebutton-html5/imports/ui/components/settings/container.jsx index 7442eabc2bacf6b5ea7b2247d8ec89ac5e428dc8..0f0dd948b4f525374fe612a417ea4a2f172d7157 100644 --- a/bigbluebutton-html5/imports/ui/components/settings/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/settings/container.jsx @@ -5,6 +5,7 @@ import Settings from './component'; import { getUserRoles, + showGuestNotification, updateSettings, getAvailableLocales, } from './service'; @@ -20,5 +21,6 @@ export default withTracker(() => ({ updateSettings, availableLocales: getAvailableLocales(), isModerator: getUserRoles() === 'MODERATOR', + showGuestNotification: showGuestNotification(), showToggleLabel: false, }))(SettingsContainer); diff --git a/bigbluebutton-html5/imports/ui/components/settings/service.js b/bigbluebutton-html5/imports/ui/components/settings/service.js index 42698cb30c268933700445e9841c7c8ee30ad0a4..19c434dda8216ec8e7ca5fad473a3815dcf688ed 100644 --- a/bigbluebutton-html5/imports/ui/components/settings/service.js +++ b/bigbluebutton-html5/imports/ui/components/settings/service.js @@ -2,6 +2,7 @@ import Users from '/imports/api/users'; import Auth from '/imports/ui/services/auth'; import Settings from '/imports/ui/services/settings'; import { notify } from '/imports/ui/services/notification'; +import GuestService from '/imports/ui/components/waiting-users/service'; const getUserRoles = () => { const user = Users.findOne({ @@ -11,6 +12,14 @@ const getUserRoles = () => { return user.role; }; +const showGuestNotification = () => { + const guestPolicy = GuestService.getGuestPolicy(); + + // Guest notification only makes sense when guest + // entrance is being controlled by moderators + return guestPolicy === 'ASK_MODERATOR'; +}; + const updateSettings = (obj, msg) => { Object.keys(obj).forEach(k => (Settings[k] = obj[k])); Settings.save(); @@ -31,6 +40,7 @@ const getAvailableLocales = () => fetch('./locale-list').then(locales => locales export { getUserRoles, + showGuestNotification, updateSettings, getAvailableLocales, }; diff --git a/bigbluebutton-html5/imports/ui/components/settings/submenus/notification/component.jsx b/bigbluebutton-html5/imports/ui/components/settings/submenus/notification/component.jsx index b058762443f9567ec0148fa021763ab0b7ae4e0a..8e2c253763104b54aef868248b590bca96d5914c 100644 --- a/bigbluebutton-html5/imports/ui/components/settings/submenus/notification/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/settings/submenus/notification/component.jsx @@ -54,8 +54,13 @@ class NotificationMenu extends BaseMenu { render() { const { - intl, isModerator, showToggleLabel, displaySettingsStatus, + intl, + isModerator, + showGuestNotification, + showToggleLabel, + displaySettingsStatus, } = this.props; + const { settings } = this.state; return ( @@ -144,7 +149,7 @@ class NotificationMenu extends BaseMenu { </div> </div> - {isModerator ? ( + {isModerator && showGuestNotification ? ( <div className={styles.row}> <div className={styles.col}> <label className={styles.label}>