diff --git a/bigbluebutton-html5/imports/ui/components/media/component.jsx b/bigbluebutton-html5/imports/ui/components/media/component.jsx
index 2e5faf840e1ca19d4ebca0807b8cffd7397c2b07..853c31d73f7a9a5a14393884942fa9a75e1b77c2 100644
--- a/bigbluebutton-html5/imports/ui/components/media/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/media/component.jsx
@@ -24,7 +24,7 @@ export default class Media extends Component {
 
   render() {
     const {
-      swapLayout, floatingOverlay, hideOverlay, disableVideo,
+      swapLayout, floatingOverlay, hideOverlay, disableVideo, children,
     } = this.props;
 
     const contentClassName = cx({
@@ -40,7 +40,7 @@ export default class Media extends Component {
     return (
       <div className={styles.container}>
         <div className={!swapLayout ? contentClassName : overlayClassName}>
-          {this.props.children}
+          {children}
         </div>
         <div className={!swapLayout ? overlayClassName : contentClassName}>
           { !disableVideo ? <VideoProviderContainer /> : null }
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/service.js b/bigbluebutton-html5/imports/ui/components/user-list/service.js
index dbae3223c6cf128e43ac7f5119f273706d1541d9..ad5c6a5de483a3a9b3c9486d70ec35356700700d 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/service.js
+++ b/bigbluebutton-html5/imports/ui/components/user-list/service.js
@@ -41,11 +41,11 @@ const getCustomLogoUrl = () => Storage.getItem(CUSTOM_LOGO_URL_KEY);
 const sortUsersByName = (a, b) => {
   if (a.name.toLowerCase() < b.name.toLowerCase()) {
     return -1;
-  } else if (a.name.toLowerCase() > b.name.toLowerCase()) {
+  } if (a.name.toLowerCase() > b.name.toLowerCase()) {
     return 1;
-  } else if (a.id.toLowerCase() > b.id.toLowerCase()) {
+  } if (a.id.toLowerCase() > b.id.toLowerCase()) {
     return -1;
-  } else if (a.id.toLowerCase() < b.id.toLowerCase()) {
+  } if (a.id.toLowerCase() < b.id.toLowerCase()) {
     return 1;
   }
 
@@ -62,12 +62,12 @@ const sortUsersByEmoji = (a, b) => {
   if (emojiA && emojiB && (emojiA !== 'none' && emojiB !== 'none')) {
     if (a.emoji.changedAt < b.emoji.changedAt) {
       return -1;
-    } else if (a.emoji.changedAt > b.emoji.changedAt) {
+    } if (a.emoji.changedAt > b.emoji.changedAt) {
       return 1;
     }
-  } else if (emojiA && emojiA !== 'none') {
+  } if (emojiA && emojiA !== 'none') {
     return -1;
-  } else if (emojiB && emojiB !== 'none') {
+  } if (emojiB && emojiB !== 'none') {
     return 1;
   }
   return 0;
@@ -76,9 +76,9 @@ const sortUsersByEmoji = (a, b) => {
 const sortUsersByModerator = (a, b) => {
   if (a.isModerator && b.isModerator) {
     return sortUsersByEmoji(a, b);
-  } else if (a.isModerator) {
+  } if (a.isModerator) {
     return -1;
-  } else if (b.isModerator) {
+  } if (b.isModerator) {
     return 1;
   }
 
@@ -88,9 +88,9 @@ const sortUsersByModerator = (a, b) => {
 const sortUsersByPhoneUser = (a, b) => {
   if (!a.isPhoneUser && !b.isPhoneUser) {
     return 0;
-  } else if (!a.isPhoneUser) {
+  } if (!a.isPhoneUser) {
     return -1;
-  } else if (!b.isPhoneUser) {
+  } if (!b.isPhoneUser) {
     return 1;
   }
 
@@ -101,7 +101,7 @@ const sortUsersByPhoneUser = (a, b) => {
 const sortUsersByCurrent = (a, b) => {
   if (a.isCurrent) {
     return -1;
-  } else if (b.isCurrent) {
+  } if (b.isCurrent) {
     return 1;
   }
 
@@ -133,11 +133,11 @@ const sortUsers = (a, b) => {
 const sortChatsByName = (a, b) => {
   if (a.name.toLowerCase() < b.name.toLowerCase()) {
     return -1;
-  } else if (a.name.toLowerCase() > b.name.toLowerCase()) {
+  } if (a.name.toLowerCase() > b.name.toLowerCase()) {
     return 1;
-  } else if (a.id.toLowerCase() > b.id.toLowerCase()) {
+  } if (a.id.toLowerCase() > b.id.toLowerCase()) {
     return -1;
-  } else if (a.id.toLowerCase() < b.id.toLowerCase()) {
+  } if (a.id.toLowerCase() < b.id.toLowerCase()) {
     return 1;
   }
 
@@ -147,9 +147,9 @@ const sortChatsByName = (a, b) => {
 const sortChatsByIcon = (a, b) => {
   if (a.icon && b.icon) {
     return sortChatsByName(a, b);
-  } else if (a.icon) {
+  } if (a.icon) {
     return -1;
-  } else if (b.icon) {
+  } if (b.icon) {
     return 1;
   }
 
@@ -436,6 +436,11 @@ const getGroupChatPrivate = (sender, receiver) => {
   }
 };
 
+const isUserModerator = (userId) => {
+  const u = Users.findOne({ userId });
+  return u ? u.moderator : false;
+};
+
 export default {
   setEmojiStatus,
   assignPresenter,
@@ -457,7 +462,7 @@ export default {
   getCustomLogoUrl,
   getGroupChatPrivate,
   hasBreakoutRoom,
+  isUserModerator,
   getEmojiList: () => EMOJI_STATUSES,
   getEmoji: () => Users.findOne({ userId: Auth.userID }).emoji,
 };
-
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx
index a5b0c31f514c8495e368bf6462b4f7d3666325a8..193691654ba29e33082ed3677e8fa633e045f210 100755
--- a/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/user-list-content/user-participants/component.jsx
@@ -72,12 +72,13 @@ class UserParticipants extends Component {
   }
 
   componentDidMount() {
-    if (!this.props.compact) {
+    const { compact, roving, users } = this.props;
+    if (!compact) {
       this.refScrollContainer.addEventListener(
         'keydown',
-        event => this.props.roving(
+        event => roving(
           event,
-          this.props.users.length,
+          users.length,
           this.changeState,
         ),
       );
@@ -91,12 +92,13 @@ class UserParticipants extends Component {
   }
 
   componentDidUpdate(prevProps, prevState) {
-    if (this.state.index === -1) {
+    const { index } = this.state;
+    if (index === -1) {
       return;
     }
 
-    if (this.state.index !== prevState.index) {
-      this.focusUserItem(this.state.index);
+    if (index !== prevState.index) {
+      this.focusUserItem(index);
     }
   }
 
@@ -129,44 +131,43 @@ class UserParticipants extends Component {
 
     const { meetingId } = meeting;
 
-    return users.map(u =>
-      (
-        <CSSTransition
-          classNames={listTransition}
-          appear
-          enter
-          exit
-          timeout={0}
-          component="div"
-          className={cx(styles.participantsList)}
-          key={u}
-        >
-          <div ref={(node) => { this.userRefs[index += 1] = node; }}>
-            <UserListItemContainer
-              {...{
-                currentUser,
-                compact,
-                isBreakoutRoom,
-                meetingId,
-                getAvailableActions,
-                normalizeEmojiName,
-                isMeetingLocked,
-                handleEmojiChange,
-                getEmojiList,
-                getEmoji,
-                setEmojiStatus,
-                assignPresenter,
-                removeUser,
-                toggleVoice,
-                changeRole,
-                getGroupChatPrivate,
-              }}
-              userId={u}
-              getScrollContainerRef={this.getScrollContainerRef}
-            />
-          </div>
-        </CSSTransition>
-      ));
+    return users.map(u => (
+      <CSSTransition
+        classNames={listTransition}
+        appear
+        enter
+        exit
+        timeout={0}
+        component="div"
+        className={cx(styles.participantsList)}
+        key={u}
+      >
+        <div ref={(node) => { this.userRefs[index += 1] = node; }}>
+          <UserListItemContainer
+            {...{
+              currentUser,
+              compact,
+              isBreakoutRoom,
+              meetingId,
+              getAvailableActions,
+              normalizeEmojiName,
+              isMeetingLocked,
+              handleEmojiChange,
+              getEmojiList,
+              getEmoji,
+              setEmojiStatus,
+              assignPresenter,
+              removeUser,
+              toggleVoice,
+              changeRole,
+              getGroupChatPrivate,
+            }}
+            userId={u}
+            getScrollContainerRef={this.getScrollContainerRef}
+          />
+        </div>
+      </CSSTransition>
+    ));
   }
 
   focusUserItem(index) {
@@ -181,28 +182,40 @@ class UserParticipants extends Component {
 
   render() {
     const {
-      intl, users, compact, setEmojiStatus, muteAllUsers, meeting, muteAllExceptPresenter,
+      intl,
+      users,
+      compact,
+      setEmojiStatus,
+      muteAllUsers,
+      meeting,
+      muteAllExceptPresenter,
+      currentUser,
     } = this.props;
 
     return (
       <div className={styles.userListColumn}>
         {
-          !compact ?
-            <div className={styles.container}>
-              <h2 className={styles.smallTitle}>
-                {intl.formatMessage(intlMessages.usersTitle)}
-                &nbsp;({users.length})
-
-              </h2>
-              <UserOptionsContainer {...{
-                users,
-                muteAllUsers,
-                muteAllExceptPresenter,
-                setEmojiStatus,
-                meeting,
-              }}
-              />
-            </div>
+          !compact
+            ? (
+              <div className={styles.container}>
+                <h2 className={styles.smallTitle}>
+                  {intl.formatMessage(intlMessages.usersTitle)}
+                &nbsp;(
+                  {users.length}
+)
+
+                </h2>
+                <UserOptionsContainer {...{
+                  users,
+                  muteAllUsers,
+                  muteAllExceptPresenter,
+                  setEmojiStatus,
+                  meeting,
+                  currentUser,
+                }}
+                />
+              </div>
+            )
             : <hr className={styles.separator} />
         }
         <div
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 6e26614b16501532a602db95d0fe9cc8b4a738fe..0db0a225fdb68c2733af006b26b875f7e7561395 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
@@ -20,6 +20,7 @@ const propTypes = {
   toggleMuteAllUsers: PropTypes.func.isRequired,
   toggleMuteAllUsersExceptPresenter: PropTypes.func.isRequired,
   toggleStatus: PropTypes.func.isRequired,
+  mountModal: PropTypes.func.isRequired,
 };
 
 const intlMessages = defineMessages({
@@ -83,7 +84,14 @@ class UserOptions extends PureComponent {
   }
 
   componentWillMount() {
-    const { intl, isMeetingMuted, mountModal } = this.props;
+    const {
+      intl,
+      isMeetingMuted,
+      mountModal,
+      toggleStatus,
+      toggleMuteAllUsers,
+      toggleMuteAllUsersExceptPresenter,
+    } = this.props;
 
     this.menuItems = _.compact([
       (<DropdownListItem
@@ -91,21 +99,21 @@ class UserOptions extends PureComponent {
         icon="clear_status"
         label={intl.formatMessage(intlMessages.clearAllLabel)}
         description={intl.formatMessage(intlMessages.clearAllDesc)}
-        onClick={this.props.toggleStatus}
+        onClick={toggleStatus}
       />),
       (<DropdownListItem
         key={_.uniqueId('list-item-')}
         icon="mute"
         label={intl.formatMessage(intlMessages.muteAllLabel)}
         description={intl.formatMessage(intlMessages.muteAllDesc)}
-        onClick={this.props.toggleMuteAllUsers}
+        onClick={toggleMuteAllUsers}
       />),
       (<DropdownListItem
         key={_.uniqueId('list-item-')}
         icon="mute"
         label={intl.formatMessage(intlMessages.muteAllExceptPresenterLabel)}
         description={intl.formatMessage(intlMessages.muteAllExceptPresenterDesc)}
-        onClick={this.props.toggleMuteAllUsersExceptPresenter}
+        onClick={toggleMuteAllUsersExceptPresenter}
       />),
       (<DropdownListItem
         key={_.uniqueId('list-item-')}
@@ -122,7 +130,8 @@ class UserOptions extends PureComponent {
   }
 
   componentDidUpdate(prevProps) {
-    if (prevProps.isMeetingMuted !== this.props.isMeetingMuted) {
+    const { isMeetingMuted } = this.props;
+    if (prevProps.isMeetingMuted !== isMeetingMuted) {
       this.alterMenu();
     }
   }
@@ -140,16 +149,23 @@ class UserOptions extends PureComponent {
   }
 
   alterMenu() {
-    const { intl, isMeetingMuted } = this.props;
+    const {
+      intl,
+      isMeetingMuted,
+      toggleMuteAllUsers,
+      toggleMuteAllUsersExceptPresenter,
+    } = this.props;
 
     if (isMeetingMuted) {
-      const menuButton = (<DropdownListItem
-        key={_.uniqueId('list-item-')}
-        icon="unmute"
-        label={intl.formatMessage(intlMessages.unmuteAllLabel)}
-        description={intl.formatMessage(intlMessages.unmuteAllDesc)}
-        onClick={this.props.toggleMuteAllUsers}
-      />);
+      const menuButton = (
+        <DropdownListItem
+          key={_.uniqueId('list-item-')}
+          icon="unmute"
+          label={intl.formatMessage(intlMessages.unmuteAllLabel)}
+          description={intl.formatMessage(intlMessages.unmuteAllDesc)}
+          onClick={toggleMuteAllUsers}
+        />
+      );
       this.menuItems.splice(1, 2, menuButton);
     } else {
       const muteMeetingButtons = [(<DropdownListItem
@@ -157,13 +173,13 @@ class UserOptions extends PureComponent {
         icon="mute"
         label={intl.formatMessage(intlMessages.muteAllLabel)}
         description={intl.formatMessage(intlMessages.muteAllDesc)}
-        onClick={this.props.toggleMuteAllUsers}
+        onClick={toggleMuteAllUsers}
       />), (<DropdownListItem
         key={_.uniqueId('list-item-')}
         icon="mute"
         label={intl.formatMessage(intlMessages.muteAllExceptPresenterLabel)}
         description={intl.formatMessage(intlMessages.muteAllExceptPresenterDesc)}
-        onClick={this.props.toggleMuteAllUsersExceptPresenter}
+        onClick={toggleMuteAllUsersExceptPresenter}
       />)];
 
       this.menuItems.splice(1, 1, muteMeetingButtons[0], muteMeetingButtons[1]);
@@ -172,12 +188,13 @@ class UserOptions extends PureComponent {
 
   render() {
     const { intl } = this.props;
+    const { isUserOptionsOpen } = this.state;
 
     return (
       <Dropdown
         ref={(ref) => { this.dropdown = ref; }}
         autoFocus={false}
-        isOpen={this.state.isUserOptionsOpen}
+        isOpen={isUserOptionsOpen}
         onShow={this.onActionsShow}
         onHide={this.onActionsHide}
         className={styles.dropdown}
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 70cffbac78e99a60a3659300add2dc7af1c1444a..24d71cfeff48042756b4a29637520d2aa5f2f5af 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
@@ -1,8 +1,6 @@
 import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import Auth from '/imports/ui/services/auth';
-import mapUser from '/imports/ui/services/user/mapUser';
-import Users from '/imports/api/users/';
 import UserOptions from './component';
 
 
@@ -31,43 +29,37 @@ export default class UserOptionsContainer extends PureComponent {
 
   muteMeeting() {
     const { muteAllUsers } = this.props;
-    const currentUser = Users.findOne({ userId: Auth.userID });
-
-    muteAllUsers(currentUser.userId);
+    muteAllUsers(Auth.userID);
   }
 
   muteAllUsersExceptPresenter() {
     const { muteAllExceptPresenter } = this.props;
-    const currentUser = Users.findOne({ userId: Auth.userID });
-
-    muteAllExceptPresenter(currentUser.userId);
+    muteAllExceptPresenter(Auth.userID);
   }
 
   handleClearStatus() {
     const { users, setEmojiStatus } = this.props;
 
-    users.forEach((user) => {
-      if (user.emoji.status !== 'none') {
-        setEmojiStatus(user.id, 'none');
-      }
+    users.forEach((id) => {
+      setEmojiStatus(id, 'none');
     });
   }
 
   render() {
-    const currentUser = Users.findOne({ userId: Auth.userID });
-    const currentUserIsModerator = mapUser(currentUser).isModerator;
-    const { meeting } = this.props;
+    const { currentUser } = this.props;
+    const currentUserIsModerator = currentUser.isModerator;
 
-    this.state.meetingMuted = meeting.voiceProp.muteOnStart;
+    const { meetingMuted } = this.state;
 
     return (
-      currentUserIsModerator ?
-        <UserOptions
-          toggleMuteAllUsers={this.muteMeeting}
-          toggleMuteAllUsersExceptPresenter={this.muteAllUsersExceptPresenter}
-          toggleStatus={this.handleClearStatus}
-          isMeetingMuted={this.state.meetingMuted}
-        /> : null
+      currentUserIsModerator
+        ? (
+          <UserOptions
+            toggleMuteAllUsers={this.muteMeeting}
+            toggleMuteAllUsersExceptPresenter={this.muteAllUsersExceptPresenter}
+            toggleStatus={this.handleClearStatus}
+            isMeetingMuted={meetingMuted}
+          />) : null
     );
   }
 }