// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import * as Utils from 'utils/utils.jsx'; import {switchFromLdapToEmail} from 'actions/user_actions.jsx'; import React from 'react'; import ReactDOM from 'react-dom'; import {FormattedMessage} from 'react-intl'; export default class LDAPToEmail extends React.Component { constructor(props) { super(props); this.submit = this.submit.bind(this); this.state = { passwordError: '', confirmError: '', ldapPasswordError: '', serverError: '' }; } submit(e) { e.preventDefault(); var state = { passwordError: '', confirmError: '', ldapPasswordError: '', serverError: '' }; const ldapPassword = ReactDOM.findDOMNode(this.refs.ldappassword).value; if (!ldapPassword) { state.ldapPasswordError = Utils.localizeMessage('claim.ldap_to_email.ldapPasswordError', 'Please enter your AD/LDAP password.'); this.setState(state); return; } const password = ReactDOM.findDOMNode(this.refs.password).value; if (!password) { state.passwordError = Utils.localizeMessage('claim.ldap_to_email.pwdError', 'Please enter your password.'); this.setState(state); return; } const passwordErr = Utils.isValidPassword(password); if (passwordErr !== '') { this.setState({ passwordError: passwordErr }); return; } const confirmPassword = ReactDOM.findDOMNode(this.refs.passwordconfirm).value; if (!confirmPassword || password !== confirmPassword) { state.error = Utils.localizeMessage('claim.ldap_to_email.pwdNotMatch', 'Passwords do not match.'); this.setState(state); return; } this.setState(state); switchFromLdapToEmail( this.props.email, password, ldapPassword, null, (err) => this.setState({serverError: err.message}) ); } render() { let serverError = null; let formClass = 'form-group'; if (this.state.serverError) { serverError =
; formClass += ' has-error'; } let passwordError = null; let passwordClass = 'form-group'; if (this.state.passwordError) { passwordError =
; passwordClass += ' has-error'; } let ldapPasswordError = null; let ldapPasswordClass = 'form-group'; if (this.state.ldapPasswordError) { ldapPasswordError =
; ldapPasswordClass += ' has-error'; } let confirmError = null; let confimClass = 'form-group'; if (this.state.confirmError) { confirmError =
; confimClass += ' has-error'; } let passwordPlaceholder; if (global.window.mm_config.LdapPasswordFieldName) { passwordPlaceholder = global.window.mm_config.LdapPasswordFieldName; } else { passwordPlaceholder = Utils.localizeMessage('claim.ldap_to_email.ldapPwd', 'AD/LDAP Password'); } return (

{ldapPasswordError}

{passwordError}
{confirmError} {serverError}
); } } LDAPToEmail.defaultProps = { }; LDAPToEmail.propTypes = { email: React.PropTypes.string };