diff --git a/config/config.json b/config/config.json index 5b05158b59..7f30859503 100644 --- a/config/config.json +++ b/config/config.json @@ -145,7 +145,9 @@ "UsernameAttribute": "", "IdAttribute": "", "SkipCertificateVerification": false, - "QueryTimeout": 60 + "QueryTimeout": 60, + "LoginFieldName": "", + "PasswordFieldName": "" }, "ComplianceSettings": { "Enable": false, diff --git a/model/config.go b/model/config.go index 26c71d07f1..6803fe069d 100644 --- a/model/config.go +++ b/model/config.go @@ -185,6 +185,10 @@ type LdapSettings struct { // Advanced SkipCertificateVerification *bool QueryTimeout *int + + // Customization + LoginFieldName *string + PasswordFieldName *string } type ComplianceSettings struct { @@ -388,6 +392,16 @@ func (o *Config) SetDefaults() { *o.LdapSettings.UserFilter = "" } + if o.LdapSettings.LoginFieldName == nil { + o.LdapSettings.LoginFieldName = new(string) + *o.LdapSettings.LoginFieldName = "" + } + + if o.LdapSettings.PasswordFieldName == nil { + o.LdapSettings.PasswordFieldName = new(string) + *o.LdapSettings.PasswordFieldName = "" + } + if o.ServiceSettings.SessionLengthWebInDays == nil { o.ServiceSettings.SessionLengthWebInDays = new(int) *o.ServiceSettings.SessionLengthWebInDays = 30 diff --git a/utils/config.go b/utils/config.go index 244ff7180d..3cafb9d2f4 100644 --- a/utils/config.go +++ b/utils/config.go @@ -241,6 +241,8 @@ func getClientConfig(c *model.Config) map[string]string { props["ProfileWidth"] = fmt.Sprintf("%v", c.FileSettings.ProfileWidth) props["EnableLdap"] = strconv.FormatBool(*c.LdapSettings.Enable) + props["LdapLoginFieldName"] = *c.LdapSettings.LoginFieldName + props["LdapPasswordFieldName"] = *c.LdapSettings.PasswordFieldName props["WebsocketPort"] = fmt.Sprintf("%v", *c.ServiceSettings.WebsocketPort) props["WebsocketSecurePort"] = fmt.Sprintf("%v", *c.ServiceSettings.WebsocketSecurePort) diff --git a/webapp/components/admin_console/ldap_settings.jsx b/webapp/components/admin_console/ldap_settings.jsx index e5abec95fe..dd6e4338fc 100644 --- a/webapp/components/admin_console/ldap_settings.jsx +++ b/webapp/components/admin_console/ldap_settings.jsx @@ -67,6 +67,8 @@ class LdapSettings extends React.Component { config.LdapSettings.UserFilter = this.refs.UserFilter.value.trim(); config.LdapSettings.ConnectionSecurity = this.state.connectionSecurity.trim(); config.LdapSettings.SkipCertificateVerification = this.state.skipCertificateVerification; + config.LdapSettings.LoginFieldName = this.refs.LoginFieldName.value.trim(); + config.LdapSettings.PasswordFieldName = this.refs.PasswordFieldName.value.trim(); let QueryTimeout = DEFAULT_QUERY_TIMEOUT; if (!isNaN(parseInt(ReactDOM.findDOMNode(this.refs.QueryTimeout).value, 10))) { @@ -571,6 +573,67 @@ class LdapSettings extends React.Component {
+ +
+
+