diff options
Diffstat (limited to 'webapp/components/signup/signup_controller.jsx')
-rw-r--r-- | webapp/components/signup/signup_controller.jsx | 375 |
1 files changed, 0 insertions, 375 deletions
diff --git a/webapp/components/signup/signup_controller.jsx b/webapp/components/signup/signup_controller.jsx deleted file mode 100644 index 2fd775428..000000000 --- a/webapp/components/signup/signup_controller.jsx +++ /dev/null @@ -1,375 +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 FormError from 'components/form_error.jsx'; -import LoadingScreen from 'components/loading_screen.jsx'; - -import UserStore from 'stores/user_store.jsx'; -import BrowserStore from 'stores/browser_store.jsx'; - -import {Client4} from 'mattermost-redux/client'; -import * as GlobalActions from 'actions/global_actions.jsx'; -import {addUserToTeamFromInvite, getInviteInfo} from 'actions/team_actions.jsx'; -import {loadMe} from 'actions/user_actions.jsx'; - -import logoImage from 'images/logo.png'; -import AnnouncementBar from 'components/announcement_bar'; - -import {FormattedMessage} from 'react-intl'; -import {browserHistory, Link} from 'react-router/es6'; - -export default class SignupController extends React.Component { - constructor(props) { - super(props); - - this.renderSignupControls = this.renderSignupControls.bind(this); - - let loading = false; - let serverError = ''; - let noOpenServerError = false; - let usedBefore = false; - - if (props.location.query) { - const hash = props.location.query.h; - const inviteId = props.location.query.id; - - if (inviteId) { - loading = true; - } else if (hash && !UserStore.getCurrentUser()) { - usedBefore = BrowserStore.getGlobalItem(hash); - } else if (!inviteId && global.window.mm_config.EnableOpenServer !== 'true' && !UserStore.getNoAccounts()) { - noOpenServerError = true; - serverError = ( - <FormattedMessage - id='signup_user_completed.no_open_server' - defaultMessage='This server does not allow open signups. Please speak with your Administrator to receive an invitation.' - /> - ); - } - } - - this.state = { - loading, - serverError, - noOpenServerError, - usedBefore - }; - } - - componentDidMount() { - BrowserStore.removeGlobalItem('team'); - if (this.props.location.query) { - const hash = this.props.location.query.h; - const data = this.props.location.query.d; - const inviteId = this.props.location.query.id; - - const userLoggedIn = UserStore.getCurrentUser() != null; - - if ((inviteId || hash) && userLoggedIn) { - addUserToTeamFromInvite( - data, - hash, - inviteId, - (team) => { - loadMe().then( - () => { - browserHistory.push('/' + team.name + '/channels/town-square'); - } - ); - }, - this.handleInvalidInvite - ); - - return; - } - - if (inviteId) { - getInviteInfo( - inviteId, - (inviteData) => { - if (!inviteData) { - return; - } - - this.setState({ // eslint-disable-line react/no-did-mount-set-state - serverError: '', - loading: false - }); - }, - this.handleInvalidInvite - ); - - return; - } - - if (userLoggedIn) { - GlobalActions.redirectUserToDefaultTeam(); - } - } - } - - handleInvalidInvite = (err) => { - let serverError; - if (err.server_error_id === 'store.sql_user.save.max_accounts.app_error') { - serverError = err.message; - } else { - serverError = ( - <FormattedMessage - id='signup_user_completed.invalid_invite' - defaultMessage='The invite link was invalid. Please speak with your Administrator to receive an invitation.' - /> - ); - } - - this.setState({ - noOpenServerError: true, - loading: false, - serverError - }); - } - - renderSignupControls() { - let signupControls = []; - - if (global.window.mm_config.EnableSignUpWithEmail === 'true') { - signupControls.push( - <Link - className='btn btn-custom-login btn--full email' - key='email' - to={'/signup_email' + window.location.search} - > - <span> - <span className='icon fa fa-envelope'/> - <FormattedMessage - id='signup.email' - defaultMessage='Email and Password' - /> - </span> - </Link> - ); - } - - if (global.window.mm_config.EnableSignUpWithGitLab === 'true') { - signupControls.push( - <a - className='btn btn-custom-login btn--full gitlab' - key='gitlab' - href={Client4.getOAuthRoute() + '/gitlab/signup' + window.location.search} - > - <span> - <span className='icon'/> - <span> - <FormattedMessage - id='signup.gitlab' - defaultMessage='GitLab Single Sign-On' - /> - </span> - </span> - </a> - ); - } - - if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_config.EnableSignUpWithGoogle === 'true') { - signupControls.push( - <a - className='btn btn-custom-login btn--full google' - key='google' - href={Client4.getOAuthRoute() + '/google/signup' + window.location.search} - > - <span> - <span className='icon'/> - <span> - <FormattedMessage - id='signup.google' - defaultMessage='Google Account' - /> - </span> - </span> - </a> - ); - } - - if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_config.EnableSignUpWithOffice365 === 'true') { - signupControls.push( - <a - className='btn btn-custom-login btn--full office365' - key='office365' - href={Client4.getOAuthRoute() + '/office365/signup' + window.location.search} - > - <span> - <span className='icon'/> - <span> - <FormattedMessage - id='signup.office365' - defaultMessage='Office 365' - /> - </span> - </span> - </a> - ); - } - - if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_config.EnableLdap === 'true') { - signupControls.push( - <Link - className='btn btn-custom-login btn--full ldap' - key='ldap' - to={'/signup_ldap' + window.location.search} - > - <span> - <span className='icon fa fa-folder-open fa--margin-top'/> - <span> - <FormattedMessage - id='signup.ldap' - defaultMessage='AD/LDAP Credentials' - /> - </span> - </span> - </Link> - ); - } - - if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_config.EnableSaml === 'true') { - let query = ''; - if (window.location.search) { - query = '&action=signup'; - } else { - query = '?action=signup'; - } - - signupControls.push( - <a - className='btn btn-custom-login btn--full saml' - key='saml' - href={'/login/sso/saml' + window.location.search + query} - > - <span> - <span className='icon fa fa-lock fa--margin-top'/> - <span> - {global.window.mm_config.SamlLoginButtonText} - </span> - </span> - </a> - ); - } - - if (signupControls.length === 0) { - const signupDisabledError = ( - <FormattedMessage - id='signup_user_completed.none' - defaultMessage='No user creation method has been enabled. Please contact an administrator for access.' - /> - ); - signupControls = ( - <FormError - error={signupDisabledError} - margin={true} - /> - ); - } else if (signupControls.length === 1) { - if (global.window.mm_config.EnableSignUpWithEmail === 'true') { - return browserHistory.push('/signup_email' + window.location.search); - } else if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_config.EnableLdap === 'true') { - return browserHistory.push('/signup_ldap' + window.location.search); - } - } - - return signupControls; - } - - render() { - if (this.state.loading) { - return (<LoadingScreen/>); - } - - if (this.state.usedBefore) { - return ( - <div> - <FormattedMessage - id='signup_user_completed.expired' - defaultMessage="You've already completed the signup process for this invitation or this invitation has expired." - /> - </div> - ); - } - - let serverError = null; - if (this.state.serverError) { - serverError = ( - <div className={'form-group has-error'}> - <label className='control-label'>{this.state.serverError}</label> - </div> - ); - } - - let signupControls; - if (this.state.noOpenServerError || this.state.usedBefore) { - signupControls = null; - } else { - signupControls = this.renderSignupControls(); - } - - return ( - <div> - <AnnouncementBar/> - <div className='signup-header'> - <Link to='/'> - <span className='fa fa-chevron-left'/> - <FormattedMessage - id='web.header.back' - /> - </Link> - </div> - <div className='col-sm-12'> - <div className='signup-team__container'> - <img - className='signup-team-logo' - src={logoImage} - /> - <div className='signup__content'> - <h1>{global.window.mm_config.SiteName}</h1> - <h4 className='color--light'> - <FormattedMessage - id='web.root.signup_info' - /> - </h4> - <div className='margin--extra'> - <h5><strong> - <FormattedMessage - id='signup.title' - defaultMessage='Create an account with:' - /> - </strong></h5> - </div> - {signupControls} - {serverError} - </div> - <span className='color--light'> - <FormattedMessage - id='signup_user_completed.haveAccount' - defaultMessage='Already have an account?' - /> - {' '} - <Link - to={'/login'} - query={this.props.location.query} - > - <FormattedMessage - id='signup_user_completed.signIn' - defaultMessage='Click here to sign in.' - /> - </Link> - </span> - </div> - </div> - </div> - ); - } -} - -SignupController.propTypes = { - location: PropTypes.object -}; |