diff --git a/i18n/en.json b/i18n/en.json index 50e7525f13..d0c5b85a1f 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -3103,10 +3103,6 @@ "id": "model.config.is_valid.saml_email_attribute.app_error", "translation": "Invalid Email attribute. Must be set." }, - { - "id": "model.config.is_valid.saml_first_name_attribute.app_error", - "translation": "Invalid First Name attribute. Must be set." - }, { "id": "model.config.is_valid.saml_idp_cert.app_error", "translation": "Identity Provider Public Certificate missing. Did you forget to upload it?" @@ -3119,10 +3115,6 @@ "id": "model.config.is_valid.saml_idp_url.app_error", "translation": "SAML SSO URL must be a valid URL and start with http:// or https://." }, - { - "id": "model.config.is_valid.saml_last_name_attribute.app_error", - "translation": "Invalid Last Name attribute. Must be set." - }, { "id": "model.config.is_valid.saml_private_key.app_error", "translation": "Service Provider Private Key missing. Did you forget to upload it?" diff --git a/model/config.go b/model/config.go index cb2d100bc0..b111322a11 100644 --- a/model/config.go +++ b/model/config.go @@ -1048,14 +1048,6 @@ func (o *Config) IsValid() *AppError { return NewLocAppError("Config.IsValid", "model.config.is_valid.saml_username_attribute.app_error", nil, "") } - if len(*o.SamlSettings.FirstNameAttribute) == 0 { - return NewLocAppError("Config.IsValid", "model.config.is_valid.saml_first_name_attribute.app_error", nil, "") - } - - if len(*o.SamlSettings.LastNameAttribute) == 0 { - return NewLocAppError("Config.IsValid", "model.config.is_valid.saml_last_name_attribute.app_error", nil, "") - } - if *o.SamlSettings.Verify { if len(*o.SamlSettings.AssertionConsumerServiceURL) == 0 || !IsValidHttpUrl(*o.SamlSettings.AssertionConsumerServiceURL) { return NewLocAppError("Config.IsValid", "model.config.is_valid.saml_assertion_consumer_service_url.app_error", nil, "") diff --git a/utils/config.go b/utils/config.go index bb21e50c1a..a42b608b23 100644 --- a/utils/config.go +++ b/utils/config.go @@ -296,6 +296,9 @@ func getClientConfig(c *model.Config) map[string]string { if *License.Features.SAML { props["EnableSaml"] = strconv.FormatBool(*c.SamlSettings.Enable) props["SamlLoginButtonText"] = *c.SamlSettings.LoginButtonText + props["FirstNameAttributeSet"] = strconv.FormatBool(*c.SamlSettings.FirstNameAttribute != "") + props["LastNameAttributeSet"] = strconv.FormatBool(*c.SamlSettings.LastNameAttribute != "") + props["NicknameAttributeSet"] = strconv.FormatBool(*c.SamlSettings.NicknameAttribute != "") } if *License.Features.Cluster { diff --git a/webapp/components/admin_console/saml_settings.jsx b/webapp/components/admin_console/saml_settings.jsx index 9fb78f472f..fe8acaf160 100644 --- a/webapp/components/admin_console/saml_settings.jsx +++ b/webapp/components/admin_console/saml_settings.jsx @@ -455,7 +455,7 @@ export default class SamlSettings extends AdminSettings { helpText={ } value={this.state.firstNameAttribute} @@ -474,7 +474,7 @@ export default class SamlSettings extends AdminSettings { helpText={ } value={this.state.lastNameAttribute} diff --git a/webapp/components/user_settings/user_settings_general.jsx b/webapp/components/user_settings/user_settings_general.jsx index 07af50059f..abf94fa6bd 100644 --- a/webapp/components/user_settings/user_settings_general.jsx +++ b/webapp/components/user_settings/user_settings_general.jsx @@ -630,7 +630,7 @@ class UserSettingsGeneralTab extends React.Component { let extraInfo; let submit = null; if (this.props.user.auth_service === '' || - (this.props.user.auth_service === 'ldap' && + ((this.props.user.auth_service === 'ldap' || this.props.user.auth_service === Constants.SAML_SERVICE) && (global.window.mm_config.FirstNameAttributeSet === 'false' || global.window.mm_config.LastNameAttributeSet === 'false'))) { inputs.push(