diff options
-rw-r--r-- | webapp/components/login/login_controller.jsx | 34 | ||||
-rw-r--r-- | webapp/i18n/en.json | 9 |
2 files changed, 32 insertions, 11 deletions
diff --git a/webapp/components/login/login_controller.jsx b/webapp/components/login/login_controller.jsx index dc450dabd..2422db5f7 100644 --- a/webapp/components/login/login_controller.jsx +++ b/webapp/components/login/login_controller.jsx @@ -33,6 +33,9 @@ export default class LoginController extends React.Component { this.handlePasswordChange = this.handlePasswordChange.bind(this); this.state = { + ldapEnabled: global.window.mm_license.IsLicensed === 'true' && global.window.mm_config.EnableLdap === 'true', + usernameSigninEnabled: global.window.mm_config.EnableSignInWithUsername === 'true', + emailSigninEnabled: global.window.mm_config.EnableSignInWithEmail === 'true', loginId: '', // the browser will set a default for this password: '', showMfa: false @@ -68,13 +71,24 @@ export default class LoginController extends React.Component { password = password.trim(); if (!loginId) { + // it's slightly weird to be constructing the message ID, but it's a bit nicer than triply nested if statements + let msgId = 'login.no'; + if (this.state.emailSigninEnabled) { + msgId += 'Email'; + } + if (this.state.usernameSigninEnabled) { + msgId += 'Username'; + } + if (this.state.ldapEnabled) { + msgId += 'LdapUsername'; + } + this.setState({ serverError: ( <FormattedMessage - id='login.noLoginId' - defaultMessage='Please enter your {loginId}' + id={msgId} values={{ - loginId: this.createLoginPlaceholder() + ldapUsername: global.window.mm_config.LdapLoginFieldName || Utils.localizeMessage('login.ldapUsernameLower', 'LDAP username') }} /> ) @@ -195,9 +209,9 @@ export default class LoginController extends React.Component { } createLoginPlaceholder() { - const ldapEnabled = global.window.mm_config.EnableLdap === 'true'; - const usernameSigninEnabled = global.window.mm_config.EnableSignInWithUsername === 'true'; - const emailSigninEnabled = global.window.mm_config.EnableSignInWithEmail === 'true'; + const ldapEnabled = this.state.ldapEnabled; + const usernameSigninEnabled = this.state.usernameSigninEnabled; + const emailSigninEnabled = this.state.emailSigninEnabled; const loginPlaceholders = []; if (emailSigninEnabled) { @@ -212,7 +226,7 @@ export default class LoginController extends React.Component { if (global.window.mm_config.LdapLoginFieldName) { loginPlaceholders.push(global.window.mm_config.LdapLoginFieldName); } else { - loginPlaceholders.push(Utils.localizeMessage('login.ldap_username', 'LDAP Username')); + loginPlaceholders.push(Utils.localizeMessage('login.ldapUsername', 'LDAP Username')); } } @@ -276,11 +290,11 @@ export default class LoginController extends React.Component { const loginControls = []; - const ldapEnabled = global.window.mm_config.EnableLdap === 'true'; + const ldapEnabled = this.state.ldapEnabled; 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 usernameSigninEnabled = this.state.usernameSigninEnabled; + const emailSigninEnabled = this.state.emailSigninEnabled; if (emailSigninEnabled || usernameSigninEnabled || ldapEnabled) { let errorClass = ''; diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index 13c806634..5e9c50d03 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -958,8 +958,15 @@ "login.google": "Google Apps", "login.invalidPassword": "Your password is incorrect.", "login.ldapUsername": "LDAP Username", + "login.ldapUsernameLower": "LDAP username", "login.noAccount": "Don't have an account? ", - "login.noLoginId": "Please enter your {loginId}", + "login.noEmail": "Please enter your email", + "login.noUsername": "Please enter your username", + "login.noLdapUsername": "Please enter your {ldapUsername}", + "login.noEmailUsername": "Please enter your email or username", + "login.noEmailLdapUsername": "Please enter your email or {ldapUsername}", + "login.noUsernameLdapUsername": "Please enter your username or {ldapUsername}", + "login.noEmailUsernameLdapUsername": "Please enter your email, username or {ldapUsername}", "login.noPassword": "Please enter your password", "login.on": "on {siteName}", "login.or": "or", |