diff --git a/config/config.json b/config/config.json index f468e49eef..45da5770b5 100644 --- a/config/config.json +++ b/config/config.json @@ -78,7 +78,7 @@ "EmailSettings": { "EnableSignUpWithEmail": true, "EnableSignInWithEmail": true, - "EnableSignInWithUsername": false, + "EnableSignInWithUsername": true, "SendEmailNotifications": false, "RequireEmailVerification": false, "FeedbackName": "", diff --git a/webapp/components/login/login.jsx b/webapp/components/login/login.jsx index d2ee1be815..0a12ed6453 100644 --- a/webapp/components/login/login.jsx +++ b/webapp/components/login/login.jsx @@ -50,58 +50,25 @@ export default class Login extends React.Component { e.preventDefault(); const loginId = this.state.loginId.trim(); - if (!loginId) { - const ldapEnabled = global.window.mm_config.EnableLdap === 'true'; - const usernameSigninEnabled = global.window.mm_config.EnableSignInWithUsername === 'true'; - const emailSigninEnabled = global.window.mm_config.EnableSignInWithEmail === 'true'; - - this.setState({ - serverError: ( - - ) - }); - - return; - } - const password = this.state.password.trim(); - if (!password) { - this.setState({ - serverError: ( - - ) - }); - return; - } - - if (global.window.mm_config.EnableMultifactorAuthentication !== 'true') { - this.submit(loginId, password, ''); - return; - } - - Client.checkMfa( - loginId, - (data) => { - if (data.mfa_required === 'true') { - this.setState({showMfa: true}); - } else { - this.submit(loginId, password, ''); + if (global.window.mm_config.EnableMultifactorAuthentication === 'true') { + Client.checkMfa( + loginId, + (data) => { + if (data.mfa_required === 'true') { + this.setState({showMfa: true}); + } else { + this.submit(loginId, password, ''); + } + }, + (err) => { + this.setState({serverError: err.message}); } - }, - (err) => { - this.setState({serverError: err.message}); - } - ); + ); + } else { + this.submit(loginId, password, ''); + } } submit(loginId, password, token) { @@ -125,7 +92,16 @@ export default class Login extends React.Component { serverError: ( + ) + }); + } else if (err.id === 'api.user.check_user_password.invalid.app_error' || err.id === 'ent.ldap.do_login.invalid_password.app_error') { + this.setState({ + serverError: ( + ) }); @@ -251,58 +227,25 @@ export default class Login extends React.Component { } } + const loginControls = []; + const ldapEnabled = global.window.mm_config.EnableLdap === 'true'; const gitlabSigninEnabled = global.window.mm_config.EnableSignUpWithGitLab === 'true'; const googleSigninEnabled = global.window.mm_config.EnableSignUpWithGoogle === 'true'; const usernameSigninEnabled = global.window.mm_config.EnableSignInWithUsername === 'true'; const emailSigninEnabled = global.window.mm_config.EnableSignInWithEmail === 'true'; - const oauthLogins = []; - if (gitlabSigninEnabled) { - oauthLogins.push( - - - - - - - ); - } - - if (googleSigninEnabled) { - oauthLogins.push( - - - - - - - ); - } - - let login = null; if (emailSigninEnabled || usernameSigninEnabled || ldapEnabled) { let errorClass = ''; if (this.state.serverError) { errorClass = ' has-error'; } - login = ( -
+ loginControls.push( +
@@ -330,6 +273,7 @@ export default class Login extends React.Component {