diff options
Diffstat (limited to 'webapp/components/integrations/components/installed_oauth_app.jsx')
-rw-r--r-- | webapp/components/integrations/components/installed_oauth_app.jsx | 270 |
1 files changed, 0 insertions, 270 deletions
diff --git a/webapp/components/integrations/components/installed_oauth_app.jsx b/webapp/components/integrations/components/installed_oauth_app.jsx deleted file mode 100644 index bcb7a7c96..000000000 --- a/webapp/components/integrations/components/installed_oauth_app.jsx +++ /dev/null @@ -1,270 +0,0 @@ -// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import React from 'react'; -import PropTypes from 'prop-types'; - -import * as Utils from 'utils/utils.jsx'; - -import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; -import FormError from 'components/form_error.jsx'; -import DeleteIntegration from './delete_integration.jsx'; - -const FAKE_SECRET = '***************'; - -export default class InstalledOAuthApp extends React.PureComponent { - static propTypes = { - - /** - * The oauthApp data - */ - oauthApp: PropTypes.object.isRequired, - - /** - * The request state for regenOAuthAppSecret action. Contains status and error - */ - regenOAuthAppSecretRequest: PropTypes.object.isRequired, - - /** - * The function to call when Regenerate Secret link is clicked - */ - onRegenerateSecret: PropTypes.func.isRequired, - - /** - * The function to call when Delete link is clicked - */ - onDelete: PropTypes.func.isRequired, - - /** - * Set to filter OAuthApp - */ - filter: PropTypes.string - } - - constructor(props) { - super(props); - - this.state = { - clientSecret: FAKE_SECRET - }; - } - - handleShowClientSecret = (e) => { - if (e && e.preventDefault) { - e.preventDefault(); - } - this.setState({clientSecret: this.props.oauthApp.client_secret}); - } - - handleHideClientSecret = (e) => { - e.preventDefault(); - this.setState({clientSecret: FAKE_SECRET}); - } - - handleRegenerate = (e) => { - e.preventDefault(); - this.props.onRegenerateSecret(this.props.oauthApp.id).then( - () => { - const {error} = this.props.regenOAuthAppSecretRequest; - if (error) { - this.setState({error: error.message}); - } else { - this.setState({error: null}); - this.handleShowClientSecret(); - } - } - ); - } - - handleDelete = () => { - this.props.onDelete(this.props.oauthApp); - } - - matchesFilter = (oauthApp, filter) => { - if (!filter) { - return true; - } - - return oauthApp.name.toLowerCase().indexOf(filter) !== -1; - } - - render() { - const oauthApp = this.props.oauthApp; - let error; - - if (this.state.error) { - error = ( - <FormError - error={this.state.error} - /> - ); - } - - if (!this.matchesFilter(oauthApp, this.props.filter)) { - return null; - } - - let name; - if (oauthApp.name) { - name = oauthApp.name; - } else { - name = ( - <FormattedMessage - id='installed_integrations.unnamed_oauth_app' - defaultMessage='Unnamed OAuth 2.0 Application' - /> - ); - } - - let description; - if (oauthApp.description) { - description = ( - <div className='item-details__row'> - <span className='item-details__description'> - {oauthApp.description} - </span> - </div> - ); - } - - const urls = ( - <div className='item-details__row'> - <span className='item-details__url'> - <FormattedMessage - id='installed_integrations.callback_urls' - defaultMessage='Callback URLs: {urls}' - values={{ - urls: oauthApp.callback_urls.join(', ') - }} - /> - </span> - </div> - ); - - let isTrusted; - if (oauthApp.is_trusted) { - isTrusted = Utils.localizeMessage('installed_oauth_apps.trusted.yes', 'Yes'); - } else { - isTrusted = Utils.localizeMessage('installed_oauth_apps.trusted.no', 'No'); - } - - let showHide; - if (this.state.clientSecret === FAKE_SECRET) { - showHide = ( - <a - href='#' - onClick={this.handleShowClientSecret} - > - <FormattedMessage - id='installed_integrations.showSecret' - defaultMessage='Show Secret' - /> - </a> - ); - } else { - showHide = ( - <a - href='#' - onClick={this.handleHideClientSecret} - > - <FormattedMessage - id='installed_integrations.hideSecret' - defaultMessage='Hide Secret' - /> - </a> - ); - } - - const regen = ( - <a - href='#' - onClick={this.handleRegenerate} - > - <FormattedMessage - id='installed_integrations.regenSecret' - defaultMessage='Regenerate Secret' - /> - </a> - ); - - let icon; - if (oauthApp.icon_url) { - icon = ( - <div className='integration__icon integration-list__icon'> - <img src={oauthApp.icon_url}/> - </div> - ); - } - - return ( - <div className='backstage-list__item'> - {icon} - <div className='item-details'> - <div className='item-details__row'> - <span className='item-details__name'> - {name} - </span> - </div> - {error} - {description} - <div className='item-details__row'> - <span className='item-details__url'> - <FormattedHTMLMessage - id='installed_oauth_apps.is_trusted' - defaultMessage='Is Trusted: <strong>{isTrusted}</strong>' - values={{ - isTrusted - }} - /> - </span> - </div> - <div className='item-details__row'> - <span className='item-details__token'> - <FormattedHTMLMessage - id='installed_integrations.client_id' - defaultMessage='Client ID: <strong>{clientId}</strong>' - values={{ - clientId: oauthApp.id - }} - /> - </span> - </div> - <div className='item-details__row'> - <span className='item-details__token'> - <FormattedHTMLMessage - id='installed_integrations.client_secret' - defaultMessage='Client Secret: <strong>{clientSecret}</strong>' - values={{ - clientSecret: this.state.clientSecret - }} - /> - </span> - </div> - {urls} - <div className='item-details__row'> - <span className='item-details__creation'> - <FormattedMessage - id='installed_integrations.creation' - defaultMessage='Created by {creator} on {createAt, date, full}' - values={{ - creator: Utils.displayUsername(oauthApp.creator_id), - createAt: oauthApp.create_at - }} - /> - </span> - </div> - </div> - <div className='item-actions'> - {showHide} - {' - '} - {regen} - {' - '} - <DeleteIntegration - messageId='installed_oauth_apps.delete.confirm' - onDelete={this.handleDelete} - /> - </div> - </div> - ); - } -}
\ No newline at end of file |