// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ReactDOM from 'react-dom'; import Client from 'utils/web_client.jsx'; import Constants from 'utils/constants.jsx'; import {Modal} from 'react-bootstrap'; import {injectIntl, intlShape, defineMessages, FormattedMessage} from 'react-intl'; var holders = defineMessages({ submit: { id: 'admin.reset_password.submit', defaultMessage: 'Please enter at least {chars} characters.' } }); 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(); var password = ReactDOM.findDOMNode(this.refs.password).value; if (!password || password.length < Constants.MIN_PASSWORD_LENGTH) { this.setState({serverError: this.props.intl.formatMessage(holders.submit, {chars: Constants.MIN_PASSWORD_LENGTH})}); 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() { if (this.props.user == null) { return
; } let urlClass = 'input-group input-group--limit'; let serverError = null; if (this.state.serverError) { urlClass += ' has-error'; serverError =

{this.state.serverError}

; } return (
{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);