feat(config): introduce allowPresentationManagementInBreakouts to be able to block breakouts pres uploads (#20769)

* introduce allowUploadNewDocsInBreakouts in settings.yml

* rename property

* change default value and property name
This commit is contained in:
Ramón Souza 2024-07-24 16:36:29 -03:00 committed by GitHub
parent 9d3b6f0b6c
commit d9cf1a07d9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 1 deletions

View File

@ -186,6 +186,7 @@ class ActionsDropdown extends PureComponent {
hasCameraAsContent, hasCameraAsContent,
isCameraAsContentEnabled, isCameraAsContentEnabled,
isTimerFeatureEnabled, isTimerFeatureEnabled,
isPresentationManagementDisabled,
} = this.props; } = this.props;
const { pollBtnLabel, presentationLabel, takePresenter } = intlMessages; const { pollBtnLabel, presentationLabel, takePresenter } = intlMessages;
@ -194,7 +195,7 @@ class ActionsDropdown extends PureComponent {
const actions = []; const actions = [];
if (amIPresenter && isPresentationEnabled()) { if (amIPresenter && !isPresentationManagementDisabled && isPresentationEnabled()) {
actions.push({ actions.push({
icon: 'upload', icon: 'upload',
dataTest: 'managePresentations', dataTest: 'managePresentations',

View File

@ -3,6 +3,7 @@ import { withTracker } from 'meteor/react-meteor-data';
import Presentations from '/imports/api/presentations'; import Presentations from '/imports/api/presentations';
import PresentationUploaderService from '/imports/ui/components/presentation/presentation-uploader/service'; import PresentationUploaderService from '/imports/ui/components/presentation/presentation-uploader/service';
import PresentationPodService from '/imports/ui/components/presentation-pod/service'; import PresentationPodService from '/imports/ui/components/presentation-pod/service';
import AppService from '/imports/ui/components/app/service';
import ActionsDropdown from './component'; import ActionsDropdown from './component';
import { layoutSelectInput, layoutDispatch, layoutSelect } from '../../layout/context'; import { layoutSelectInput, layoutDispatch, layoutSelect } from '../../layout/context';
import { SMALL_VIEWPORT_BREAKPOINT } from '../../layout/enums'; import { SMALL_VIEWPORT_BREAKPOINT } from '../../layout/enums';
@ -32,6 +33,10 @@ const ActionsDropdownContainer = (props) => {
export default withTracker(() => { export default withTracker(() => {
const presentations = Presentations.find({ 'conversion.done': true }).fetch(); const presentations = Presentations.find({ 'conversion.done': true }).fetch();
const { allowPresentationManagementInBreakouts } = Meteor.settings.public.app.breakouts;
const isPresentationManagementDisabled = AppService.meetingIsBreakout()
&& !allowPresentationManagementInBreakouts;
return { return {
presentations, presentations,
isTimerFeatureEnabled: isTimerFeatureEnabled(), isTimerFeatureEnabled: isTimerFeatureEnabled(),
@ -39,5 +44,6 @@ export default withTracker(() => {
setPresentation: PresentationUploaderService.setPresentation, setPresentation: PresentationUploaderService.setPresentation,
podIds: PresentationPodService.getPresentationPodIds(), podIds: PresentationPodService.getPresentationPodIds(),
isCameraAsContentEnabled: isCameraAsContentEnabled(), isCameraAsContentEnabled: isCameraAsContentEnabled(),
isPresentationManagementDisabled,
}; };
})(ActionsDropdownContainer); })(ActionsDropdownContainer);

View File

@ -138,6 +138,7 @@ public:
captureSharedNotesByDefault: false captureSharedNotesByDefault: false
sendInvitationToAssignedModeratorsByDefault: false sendInvitationToAssignedModeratorsByDefault: false
breakoutRoomLimit: 16 breakoutRoomLimit: 16
allowPresentationManagementInBreakouts: true
# https://github.com/bigbluebutton/bigbluebutton/pull/10826 # https://github.com/bigbluebutton/bigbluebutton/pull/10826
customHeartbeat: false customHeartbeat: false
customHeartbeatUseDataFrames: true customHeartbeatUseDataFrames: true