diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2017-04-04 00:18:04 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2017-04-03 21:18:04 -0700 |
commit | 348374fba5db8415d37d5cd8b897048b1300f415 (patch) | |
tree | 8277c9be4b8032b488e2fe87ceee58a283569a3e /webapp/components/admin_console/system_users | |
parent | 4c9019b9eb789152439ad6a56e93c7f0fb7832c5 (diff) | |
download | chat-348374fba5db8415d37d5cd8b897048b1300f415.tar.gz chat-348374fba5db8415d37d5cd8b897048b1300f415.tar.bz2 chat-348374fba5db8415d37d5cd8b897048b1300f415.zip |
PLT-6098 Added Manage Teams modal to System Console users list (#5914)
* Added Manage Teams modal to System Console users list
* Localized ManageTeamsModal
* Fixed borders between Manage Teams list items
* Updated appearance of ManageTeamsModal
* Fixed admin being redirected from system console when removing self from a team
* Sorted teams in ManageTeamsModal
* Updated Manage Teams styling
Diffstat (limited to 'webapp/components/admin_console/system_users')
-rw-r--r-- | webapp/components/admin_console/system_users/system_users_dropdown.jsx | 31 | ||||
-rw-r--r-- | webapp/components/admin_console/system_users/system_users_list.jsx | 27 |
2 files changed, 56 insertions, 2 deletions
diff --git a/webapp/components/admin_console/system_users/system_users_dropdown.jsx b/webapp/components/admin_console/system_users/system_users_dropdown.jsx index 6f18754a1..534017cf8 100644 --- a/webapp/components/admin_console/system_users/system_users_dropdown.jsx +++ b/webapp/components/admin_console/system_users/system_users_dropdown.jsx @@ -18,7 +18,8 @@ import React from 'react'; export default class SystemUsersDropdown extends React.Component { static propTypes = { user: React.PropTypes.object.isRequired, - doPasswordReset: React.PropTypes.func.isRequired + doPasswordReset: React.PropTypes.func.isRequired, + doManageTeams: React.PropTypes.func.isRequired }; constructor(props) { @@ -28,6 +29,7 @@ export default class SystemUsersDropdown extends React.Component { this.handleMakeActive = this.handleMakeActive.bind(this); this.handleMakeNotActive = this.handleMakeNotActive.bind(this); this.handleMakeSystemAdmin = this.handleMakeSystemAdmin.bind(this); + this.handleManageTeams = this.handleManageTeams.bind(this); this.handleResetPassword = this.handleResetPassword.bind(this); this.handleResetMfa = this.handleResetMfa.bind(this); this.handleDemoteSystemAdmin = this.handleDemoteSystemAdmin.bind(this); @@ -94,6 +96,12 @@ export default class SystemUsersDropdown extends React.Component { ); } + handleManageTeams(e) { + e.preventDefault(); + + this.props.doManageTeams(this.props.user); + } + handleResetPassword(e) { e.preventDefault(); this.props.doPasswordReset(this.props.user); @@ -177,6 +185,7 @@ export default class SystemUsersDropdown extends React.Component { let showMakeSystemAdmin = !Utils.isSystemAdmin(user.roles); let showMakeActive = false; let showMakeNotActive = !Utils.isSystemAdmin(user.roles); + let showManageTeams = true; const mfaEnabled = global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MFA === 'true' && global.window.mm_config.EnableMultifactorAuthentication === 'true'; const showMfaReset = mfaEnabled && user.mfa_active; @@ -191,6 +200,7 @@ export default class SystemUsersDropdown extends React.Component { showMakeSystemAdmin = false; showMakeActive = true; showMakeNotActive = false; + showManageTeams = false; } let disableActivationToggle = false; @@ -281,6 +291,24 @@ export default class SystemUsersDropdown extends React.Component { ); } + let manageTeams = null; + if (showManageTeams) { + manageTeams = ( + <li role='presentation'> + <a + role='menuitem' + href='#' + onClick={this.handleManageTeams} + > + <FormattedMessage + id='admin.user_item.manageTeams' + defaultMessage='Manage Teams' + /> + </a> + </li> + ); + } + let mfaReset = null; if (showMfaReset) { mfaReset = ( @@ -404,6 +432,7 @@ export default class SystemUsersDropdown extends React.Component { {makeActive} {makeNotActive} {makeSystemAdmin} + {manageTeams} {mfaReset} {passwordReset} </ul> diff --git a/webapp/components/admin_console/system_users/system_users_list.jsx b/webapp/components/admin_console/system_users/system_users_list.jsx index 5d8837164..ccb1a39d4 100644 --- a/webapp/components/admin_console/system_users/system_users_list.jsx +++ b/webapp/components/admin_console/system_users/system_users_list.jsx @@ -4,6 +4,7 @@ import React from 'react'; import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; +import ManageTeamsModal from 'components/admin_console/manage_teams_modal/manage_teams_modal.jsx'; import ResetPasswordModal from 'components/admin_console/reset_password_modal.jsx'; import SearchableUserList from 'components/searchable_user_list/searchable_user_list.jsx'; @@ -35,6 +36,9 @@ export default class SystemUsersList extends React.Component { this.previousPage = this.previousPage.bind(this); this.search = this.search.bind(this); + this.doManageTeams = this.doManageTeams.bind(this); + this.doManageTeamsDismiss = this.doManageTeamsDismiss.bind(this); + this.doPasswordReset = this.doPasswordReset.bind(this); this.doPasswordResetDismiss = this.doPasswordResetDismiss.bind(this); this.doPasswordResetSubmit = this.doPasswordResetSubmit.bind(this); @@ -42,6 +46,7 @@ export default class SystemUsersList extends React.Component { this.state = { page: 0, + showManageTeamsModal: false, showPasswordModal: false, user: null }; @@ -71,6 +76,20 @@ export default class SystemUsersList extends React.Component { } } + doManageTeams(user) { + this.setState({ + showManageTeamsModal: true, + user + }); + } + + doManageTeamsDismiss() { + this.setState({ + showManageTeamsModal: false, + user: null + }); + } + doPasswordReset(user) { this.setState({ showPasswordModal: true, @@ -211,7 +230,8 @@ export default class SystemUsersList extends React.Component { extraInfo={extraInfo} actions={[SystemUsersDropdown]} actionProps={{ - doPasswordReset: this.doPasswordReset + doPasswordReset: this.doPasswordReset, + doManageTeams: this.doManageTeams }} nextPage={this.nextPage} previousPage={this.previousPage} @@ -220,6 +240,11 @@ export default class SystemUsersList extends React.Component { term={this.props.term} onTermChange={this.props.onTermChange} /> + <ManageTeamsModal + user={this.state.user} + show={this.state.showManageTeamsModal} + onModalDismissed={this.doManageTeamsDismiss} + /> <ResetPasswordModal user={this.state.user} show={this.state.showPasswordModal} |