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 = (
-