diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-08-01 11:06:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-01 11:06:53 -0400 |
commit | 5da5c0bbfb80cb5c9cf2699f42d17decc2d60f5b (patch) | |
tree | fdd886332e75a9ae8138a31d3c34b240adb094b5 /webapp/components/admin_console/revoke_token_button | |
parent | 4ef844298fdb0d6fb41eac760f8ac00cee82b3bc (diff) | |
download | chat-5da5c0bbfb80cb5c9cf2699f42d17decc2d60f5b.tar.gz chat-5da5c0bbfb80cb5c9cf2699f42d17decc2d60f5b.tar.bz2 chat-5da5c0bbfb80cb5c9cf2699f42d17decc2d60f5b.zip |
PLT-6987 User access token UI (#7007)
* Add user access token UI
* Fix enter press and update mattermost-redux
* Updating UI for access token stuff (#7066)
* Revert segment key
Diffstat (limited to 'webapp/components/admin_console/revoke_token_button')
-rw-r--r-- | webapp/components/admin_console/revoke_token_button/index.js | 24 | ||||
-rw-r--r-- | webapp/components/admin_console/revoke_token_button/revoke_token_button.jsx | 56 |
2 files changed, 80 insertions, 0 deletions
diff --git a/webapp/components/admin_console/revoke_token_button/index.js b/webapp/components/admin_console/revoke_token_button/index.js new file mode 100644 index 000000000..6fada1bcc --- /dev/null +++ b/webapp/components/admin_console/revoke_token_button/index.js @@ -0,0 +1,24 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import {connect} from 'react-redux'; +import {bindActionCreators} from 'redux'; +import {revokeUserAccessToken} from 'mattermost-redux/actions/users'; + +import RevokeTokenButton from './revoke_token_button.jsx'; + +function mapStateToProps(state, ownProps) { + return { + ...ownProps + }; +} + +function mapDispatchToProps(dispatch) { + return { + actions: bindActionCreators({ + revokeUserAccessToken + }, dispatch) + }; +} + +export default connect(mapStateToProps, mapDispatchToProps)(RevokeTokenButton); diff --git a/webapp/components/admin_console/revoke_token_button/revoke_token_button.jsx b/webapp/components/admin_console/revoke_token_button/revoke_token_button.jsx new file mode 100644 index 000000000..4829a0cde --- /dev/null +++ b/webapp/components/admin_console/revoke_token_button/revoke_token_button.jsx @@ -0,0 +1,56 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; +import PropTypes from 'prop-types'; +import {FormattedMessage} from 'react-intl'; + +import {trackEvent} from 'actions/diagnostics_actions.jsx'; + +export default class RevokeTokenButton extends React.PureComponent { + static propTypes = { + + /* + * Token id to revoke + */ + tokenId: PropTypes.string.isRequired, + + /* + * Function to call on error + */ + onError: PropTypes.func.isRequired, + + actions: PropTypes.shape({ + + /** + * Function to revoke a user access token + */ + revokeUserAccessToken: PropTypes.func.isRequired + }).isRequired + }; + + handleClick = async (e) => { + e.preventDefault(); + + const {error} = await this.props.actions.revokeUserAccessToken(this.props.tokenId); + trackEvent('system_console', 'revoke_user_access_token'); + + if (error) { + this.props.onError(error.message); + } + } + + render() { + return ( + <button + className='btn btn-danger' + onClick={this.handleClick} + > + <FormattedMessage + id='admin.revoke_token_button.delete' + defaultMessage='Delete' + /> + </button> + ); + } +} |