diff --git a/app/screens/login/login.js b/app/screens/login/login.js index e2c6626e88..d1b82604f9 100644 --- a/app/screens/login/login.js +++ b/app/screens/login/login.js @@ -299,15 +299,28 @@ class Login extends PureComponent { /> ); } else { + const additionalStyle = {}; + if (this.props.config.EmailLoginButtonColor) { + additionalStyle.backgroundColor = this.props.config.EmailLoginButtonColor; + } + if (this.props.config.EmailLoginButtonBorderColor) { + additionalStyle.borderColor = this.props.config.EmailLoginButtonBorderColor; + } + + const additionalTextStyle = {}; + if (this.props.config.EmailLoginButtonTextColor) { + additionalTextStyle.color = this.props.config.EmailLoginButtonTextColor; + } + proceed = ( ); diff --git a/app/screens/login_options/login_options.js b/app/screens/login_options/login_options.js index 6c846c29e1..068d23315a 100644 --- a/app/screens/login_options/login_options.js +++ b/app/screens/login_options/login_options.js @@ -20,6 +20,7 @@ import StatusBar from 'app/components/status_bar'; import {GlobalStyles} from 'app/styles'; import {preventDoubleTap} from 'app/utils/tap'; +import LocalConfig from 'assets/config'; import gitlab from 'assets/images/gitlab.png'; import logo from 'assets/images/logo.png'; @@ -82,17 +83,30 @@ class LoginOptions extends PureComponent { renderEmailOption = () => { const {config} = this.props; - if (config.EnableSignInWithEmail === 'true' || config.EnableSignInWithUsername === 'true') { + const forceHideFromLocal = LocalConfig.HideEmailLoginExperimental; + + if (!forceHideFromLocal && (config.EnableSignInWithEmail === 'true' || config.EnableSignInWithUsername === 'true')) { + const backgroundColor = config.EmailLoginButtonColor || '#2389d7'; + const additionalStyle = { + backgroundColor + }; + + if (config.hasOwnProperty('EmailLoginButtonBorderColor')) { + additionalStyle.borderColor = config.EmailLoginButtonBorderColor; + } + + const textColor = config.EmailLoginButtonTextColor || 'white'; + return ( ); @@ -103,11 +117,24 @@ class LoginOptions extends PureComponent { renderLdapOption = () => { const {config, license} = this.props; - if (license.IsLicensed === 'true' && config.EnableLdap === 'true') { + const forceHideFromLocal = LocalConfig.HideLDAPLoginExperimental; + + if (!forceHideFromLocal && license.IsLicensed === 'true' && config.EnableLdap === 'true') { + const backgroundColor = config.LDAPLoginButtonColor || '#2389d7'; + const additionalStyle = { + backgroundColor + }; + + if (config.hasOwnProperty('LDAPLoginButtonBorderColor')) { + additionalStyle.borderColor = config.LDAPLoginButtonBorderColor; + } + + const textColor = config.LDAPLoginButtonTextColor || 'white'; + let buttonText; if (config.LdapLoginFieldName) { buttonText = ( - + {config.LdapLoginFieldName} ); @@ -116,7 +143,7 @@ class LoginOptions extends PureComponent { ); } @@ -125,7 +152,7 @@ class LoginOptions extends PureComponent { @@ -137,10 +164,13 @@ class LoginOptions extends PureComponent { renderGitlabOption = () => { const {config, serverVersion} = this.props; + + const forceHideFromLocal = LocalConfig.HideGitLabLoginExperimental; + const match = serverVersion.match(/^[0-9]*.[0-9]*.[0-9]*(-[a-zA-Z0-9.-]*)?/g); if (match) { const version = match[0]; - if (config.EnableSignUpWithGitLab === 'true' && semver.valid(version) && semver.gte(version, 'v3.10.0')) { + if (!forceHideFromLocal && config.EnableSignUpWithGitLab === 'true' && semver.valid(version) && semver.gte(version, 'v3.10.0')) { return (