// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ReactDOM from 'react-dom'; import Client from 'client/web_client.jsx'; import * as Utils from 'utils/utils.jsx'; import {Modal} from 'react-bootstrap'; import {injectIntl, intlShape, FormattedMessage} from 'react-intl'; import React from 'react'; class ResetPasswordModal extends React.Component { constructor(props) { super(props); this.doSubmit = this.doSubmit.bind(this); this.doCancel = this.doCancel.bind(this); this.state = { serverError: null }; } doSubmit(e) { e.preventDefault(); const password = this.refs.password.value; const passwordErr = Utils.isValidPassword(password); if (passwordErr) { this.setState({serverError: passwordErr}); return; } this.setState({serverError: null}); Client.adminResetPassword( this.props.user.id, password, () => { this.props.onModalSubmit(ReactDOM.findDOMNode(this.refs.password).value); }, (err) => { this.setState({serverError: err.message}); } ); } doCancel() { this.setState({serverError: null}); this.props.onModalDismissed(); } render() { const user = this.props.user; if (user == null) { return
; } let urlClass = 'input-group input-group--limit'; let serverError = null; if (this.state.serverError) { urlClass += ' has-error'; serverError =

{this.state.serverError}

; } let title; if (user.auth_service) { title = ( ); } else { title = ( ); } return ( {title}
{serverError}
); } } ResetPasswordModal.defaultProps = { show: false }; ResetPasswordModal.propTypes = { intl: intlShape.isRequired, user: React.PropTypes.object, team: React.PropTypes.object, show: React.PropTypes.bool.isRequired, onModalSubmit: React.PropTypes.func, onModalDismissed: React.PropTypes.func }; export default injectIntl(ResetPasswordModal);