diff options
author | George Goldberg <george@gberg.me> | 2017-04-04 19:43:22 +0100 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-04-04 14:43:22 -0400 |
commit | 6bb65ef420fba17ec02e9b8005ca58bb60321cdc (patch) | |
tree | a7f07fd4ae05c92ed0f0fa5496277514e5d1c59e /webapp/components/channel_header.jsx | |
parent | 6bf080393d88534aa658ecaff32ae089bd304772 (diff) | |
download | chat-6bb65ef420fba17ec02e9b8005ca58bb60321cdc.tar.gz chat-6bb65ef420fba17ec02e9b8005ca58bb60321cdc.tar.bz2 chat-6bb65ef420fba17ec02e9b8005ca58bb60321cdc.zip |
PLT-6139 (WebApp): Manage Private Channel Members (#5947)
Honour the policy setting for add/remove members from private channels
in the WebApp UI.
Diffstat (limited to 'webapp/components/channel_header.jsx')
-rw-r--r-- | webapp/components/channel_header.jsx | 92 |
1 files changed, 57 insertions, 35 deletions
diff --git a/webapp/components/channel_header.jsx b/webapp/components/channel_header.jsx index 9c9876419..c0bd2ccfe 100644 --- a/webapp/components/channel_header.jsx +++ b/webapp/components/channel_header.jsx @@ -269,6 +269,7 @@ export default class ChannelHeader extends React.Component { ); let channelTitle = channel.display_name; const isAdmin = TeamStore.isTeamAdminForCurrentTeam() || UserStore.isSystemAdminForCurrentUser(); + const isTeamAdmin = TeamStore.isTeamAdminForCurrentTeam(); const isSystemAdmin = UserStore.isSystemAdminForCurrentUser(); const isChannelAdmin = ChannelStore.isChannelAdminForCurrentChannel(); const isDirect = (this.state.channel.type === Constants.DM_CHANNEL); @@ -492,44 +493,65 @@ export default class ChannelHeader extends React.Component { /> ); - dropdownContents.push( - <li - id='channelAddMembers' - key='add_members' - role='presentation' - > - <ToggleModalButton - ref='channelInviteModalButton' - role='menuitem' - dialogType={ChannelInviteModal} - dialogProps={{channel, currentUser: this.state.currentUser}} + if (ChannelUtils.canManageMembers(channel, isSystemAdmin, isTeamAdmin, isChannelAdmin)) { + dropdownContents.push( + <li + id='channelAddMembers' + key='add_members' + role='presentation' > - <FormattedMessage - id='channel_header.addMembers' - defaultMessage='Add Members' - /> - </ToggleModalButton> - </li> - ); + <ToggleModalButton + ref='channelInviteModalButton' + role='menuitem' + dialogType={ChannelInviteModal} + dialogProps={{channel, currentUser: this.state.currentUser}} + > + <FormattedMessage + id='channel_header.addMembers' + defaultMessage='Add Members' + /> + </ToggleModalButton> + </li> + ); - dropdownContents.push( - <li - id='channelManageMembers' - key='manage_members' - role='presentation' - > - <a - role='menuitem' - href='#' - onClick={() => this.setState({showMembersModal: true})} + dropdownContents.push( + <li + id='channelManageMembers' + key='manage_members' + role='presentation' > - <FormattedMessage - id='channel_header.manageMembers' - defaultMessage='Manage Members' - /> - </a> - </li> - ); + <a + role='menuitem' + href='#' + onClick={() => this.setState({showMembersModal: true})} + > + <FormattedMessage + id='channel_header.manageMembers' + defaultMessage='Manage Members' + /> + </a> + </li> + ); + } else { + dropdownContents.push( + <li + id='channelViewMembers' + key='view_members' + role='presentation' + > + <a + role='menuitem' + href='#' + onClick={() => this.setState({showMembersModal: true})} + > + <FormattedMessage + id='channel_header.viewMembers' + defaultMessage='View Members' + /> + </a> + </li> + ); + } } const deleteOption = ( |