diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss index fac980e0fd802aac66729997f8fc5c4c305afd6c..f0e2dc7778eb571663fd38be013e9bedd6a0ff3a 100755 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/styles.scss @@ -134,3 +134,8 @@ overflow: hidden; flex-shrink: 1; } + +.noteLock { + font-size: 65%; + color: var(--color-gray-light); +} diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx index 34b1bc59439046e263856712808ec6e20b10be8c..75fb591c5c4398f57523bf39559d521dba88a4d9 100644 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/component.jsx @@ -57,7 +57,7 @@ class UserNotes extends Component { } renderNotes() { - const { intl } = this.props; + const { intl, disableNotes } = this.props; const { unread } = this.state; let notification = null; @@ -82,7 +82,19 @@ class UserNotes extends Component { onClick={NoteService.toggleNotePanel} > <Icon iconName="copy" /> - <span aria-hidden>{intl.formatMessage(intlMessages.sharedNotes)}</span> + <div aria-hidden> + <div> + {intl.formatMessage(intlMessages.sharedNotes)} + </div> + {disableNotes + ? ( + <div className={styles.noteLock}> + <Icon iconName="lock" /> + <span>Locked by (moderator)</span> + </div> + ) : null + } + </div> {notification} </div> ); diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx index 4e8f514ec274b6982c38b1c078e523c040630155..bc14addf6dd67e6d3137f679f3fb7351fe951f78 100644 --- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-notes/container.jsx @@ -1,11 +1,27 @@ import React from 'react'; import { withTracker } from 'meteor/react-meteor-data'; import NoteService from '/imports/ui/components/note/service'; +import Meetings from '/imports/api/meetings'; +import Users from '/imports/api/users'; +import Auth from '/imports/ui/services/auth'; import UserNotes from './component'; +const ROLE_VIEWER = Meteor.settings.public.user.role_viewer; + const UserNotesContainer = props => <UserNotes {...props} />; -export default withTracker(() => ({ - isPanelOpened: NoteService.isPanelOpened(), - revs: NoteService.getRevs(), -}))(UserNotesContainer); +export default withTracker(() => { + const Meeting = Meetings.findOne({ meetingId: Auth.meetingID }, + { fields: { 'lockSettingsProps.disableNote': 1 } }); + const isViewer = Users.findOne({ meetingId: Auth.meetingID, userId: Auth.userID }, { + fields: { + role: 1, + }, + }).role === ROLE_VIEWER; + + return { + isPanelOpened: NoteService.isPanelOpened(), + revs: NoteService.getRevs(), + disableNotes: Meeting.lockSettingsProps.disableNote && isViewer, + }; +})(UserNotesContainer);