diff options
author | JoramWilander <jwawilander@gmail.com> | 2016-03-30 12:49:29 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2016-03-30 12:49:29 -0400 |
commit | f9a3a4b3949dddecae413b97904c895b2cd887bf (patch) | |
tree | bb77628b0aba959feeab28a5a10fe0bc0e6b4ecc /webapp/components/login_username.jsx | |
parent | 2aa0d9b8fc2e31e51bbddc8d90fe801c089f7c4b (diff) | |
download | chat-f9a3a4b3949dddecae413b97904c895b2cd887bf.tar.gz chat-f9a3a4b3949dddecae413b97904c895b2cd887bf.tar.bz2 chat-f9a3a4b3949dddecae413b97904c895b2cd887bf.zip |
Add MFA functionality
Diffstat (limited to 'webapp/components/login_username.jsx')
-rw-r--r-- | webapp/components/login_username.jsx | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/webapp/components/login_username.jsx b/webapp/components/login_username.jsx deleted file mode 100644 index 71874fa1a..000000000 --- a/webapp/components/login_username.jsx +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import * as Utils from 'utils/utils.jsx'; -import * as Client from 'utils/client.jsx'; -import UserStore from 'stores/user_store.jsx'; - -import {injectIntl, intlShape, defineMessages, FormattedMessage} from 'react-intl'; -import {browserHistory} from 'react-router'; - -var holders = defineMessages({ - badTeam: { - id: 'login_username.badTeam', - defaultMessage: 'Bad team name' - }, - usernameReq: { - id: 'login_username.usernameReq', - defaultMessage: 'A username is required' - }, - pwdReq: { - id: 'login_username.pwdReq', - defaultMessage: 'A password is required' - }, - verifyEmailError: { - id: 'login_username.verifyEmailError', - defaultMessage: 'Please verify your email address. Check your inbox for an email.' - }, - userNotFoundError: { - id: 'login_username.userNotFoundError', - defaultMessage: "We couldn't find an existing account matching your username for this team." - }, - username: { - id: 'login_username.username', - defaultMessage: 'Username' - }, - pwd: { - id: 'login_username.pwd', - defaultMessage: 'Password' - } -}); - -import React from 'react'; - -export default class LoginUsername extends React.Component { - constructor(props) { - super(props); - - this.handleSubmit = this.handleSubmit.bind(this); - - this.state = { - serverError: '' - }; - } - handleSubmit(e) { - e.preventDefault(); - const {formatMessage} = this.props.intl; - var state = {}; - - const name = this.props.teamName; - if (!name) { - state.serverError = formatMessage(holders.badTeam); - this.setState(state); - return; - } - - const username = this.refs.username.value.trim(); - if (!username) { - state.serverError = formatMessage(holders.usernameReq); - this.setState(state); - return; - } - - const password = this.refs.password.value.trim(); - if (!password) { - state.serverError = formatMessage(holders.pwdReq); - this.setState(state); - return; - } - - state.serverError = ''; - this.setState(state); - - Client.loginByUsername(name, username, password, - () => { - UserStore.setLastUsername(username); - - const redirect = Utils.getUrlParameter('redirect'); - if (redirect) { - browserHistory.push(decodeURIComponent(redirect)); - } else { - browserHistory.push('/' + name + '/channels/town-square'); - } - }, - (err) => { - if (err.id === 'api.user.login.not_verified.app_error') { - state.serverError = formatMessage(holders.verifyEmailError); - } else if (err.id === 'store.sql_user.get_by_username.app_error') { - state.serverError = formatMessage(holders.userNotFoundError); - } else { - state.serverError = err.message; - } - - this.valid = false; - this.setState(state); - } - ); - } - render() { - let serverError; - let errorClass = ''; - if (this.state.serverError) { - serverError = <label className='control-label'>{this.state.serverError}</label>; - errorClass = ' has-error'; - } - - let priorUsername = UserStore.getLastUsername(); - let focusUsername = false; - let focusPassword = false; - if (priorUsername === '') { - focusUsername = true; - } else { - focusPassword = true; - } - - const emailParam = Utils.getUrlParameter('email'); - if (emailParam) { - priorUsername = decodeURIComponent(emailParam); - } - - const {formatMessage} = this.props.intl; - return ( - <form onSubmit={this.handleSubmit}> - <div className='signup__email-container'> - <div className={'form-group' + errorClass}> - {serverError} - </div> - <div className={'form-group' + errorClass}> - <input - autoFocus={focusUsername} - type='username' - className='form-control' - name='username' - defaultValue={priorUsername} - ref='username' - placeholder={formatMessage(holders.username)} - spellCheck='false' - /> - </div> - <div className={'form-group' + errorClass}> - <input - autoFocus={focusPassword} - type='password' - className='form-control' - name='password' - ref='password' - placeholder={formatMessage(holders.pwd)} - spellCheck='false' - /> - </div> - <div className='form-group'> - <button - type='submit' - className='btn btn-primary' - > - <FormattedMessage - id='login_username.signin' - defaultMessage='Sign in' - /> - </button> - </div> - </div> - </form> - ); - } -} -LoginUsername.defaultProps = { -}; - -LoginUsername.propTypes = { - intl: intlShape.isRequired, - teamName: React.PropTypes.string.isRequired -}; - -export default injectIntl(LoginUsername); |