summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-09-01 10:03:55 -0400
committerJoram Wilander <jwawilander@gmail.com>2016-09-01 10:03:55 -0400
commit276e0189b1453b3b869f9ae834482d672b832158 (patch)
treeecac47da72f4954491c108b68b296c244a87c151
parente1e29a86d9f7da84d25fe205287eb0a9e0fecd2d (diff)
downloadchat-276e0189b1453b3b869f9ae834482d672b832158.tar.gz
chat-276e0189b1453b3b869f9ae834482d672b832158.tar.bz2
chat-276e0189b1453b3b869f9ae834482d672b832158.zip
Making LDAP FirstName and LastName fields optional. (#3919)
-rw-r--r--model/config.go8
-rw-r--r--store/sql_user_store.go2
-rw-r--r--utils/config.go2
-rw-r--r--webapp/components/admin_console/ldap_settings.jsx4
-rw-r--r--webapp/components/user_settings/user_settings_general.jsx4
-rw-r--r--webapp/i18n/en.json4
6 files changed, 9 insertions, 15 deletions
diff --git a/model/config.go b/model/config.go
index 32cb501a0..eedd0d116 100644
--- a/model/config.go
+++ b/model/config.go
@@ -1013,14 +1013,6 @@ func (o *Config) IsValid() *AppError {
return NewLocAppError("Config.IsValid", "model.config.is_valid.ldap_basedn", nil, "")
}
- if *o.LdapSettings.FirstNameAttribute == "" {
- return NewLocAppError("Config.IsValid", "model.config.is_valid.ldap_firstname", nil, "")
- }
-
- if *o.LdapSettings.LastNameAttribute == "" {
- return NewLocAppError("Config.IsValid", "model.config.is_valid.ldap_lastname", nil, "")
- }
-
if *o.LdapSettings.EmailAttribute == "" {
return NewLocAppError("Config.IsValid", "model.config.is_valid.ldap_email", nil, "")
}
diff --git a/store/sql_user_store.go b/store/sql_user_store.go
index 61bfa35b8..fff78c8f2 100644
--- a/store/sql_user_store.go
+++ b/store/sql_user_store.go
@@ -132,8 +132,6 @@ func (us SqlUserStore) Update(user *model.User, trustedUpdateData bool) StoreCha
user.Email = oldUser.Email
} else if user.IsLDAPUser() && !trustedUpdateData {
if user.Username != oldUser.Username ||
- user.FirstName != oldUser.FirstName ||
- user.LastName != oldUser.LastName ||
user.Email != oldUser.Email {
result.Err = model.NewLocAppError("SqlUserStore.Update", "store.sql_user.update.can_not_change_ldap.app_error", nil, "user_id="+user.Id)
storeChannel <- result
diff --git a/utils/config.go b/utils/config.go
index 9bb294281..bb21e50c1 100644
--- a/utils/config.go
+++ b/utils/config.go
@@ -281,6 +281,8 @@ func getClientConfig(c *model.Config) map[string]string {
props["EnableLdap"] = strconv.FormatBool(*c.LdapSettings.Enable)
props["LdapLoginFieldName"] = *c.LdapSettings.LoginFieldName
props["NicknameAttributeSet"] = strconv.FormatBool(*c.LdapSettings.NicknameAttribute != "")
+ props["FirstNameAttributeSet"] = strconv.FormatBool(*c.LdapSettings.FirstNameAttribute != "")
+ props["LastNameAttributeSet"] = strconv.FormatBool(*c.LdapSettings.LastNameAttribute != "")
}
if *License.Features.MFA {
diff --git a/webapp/components/admin_console/ldap_settings.jsx b/webapp/components/admin_console/ldap_settings.jsx
index 32cdbab3a..23728870e 100644
--- a/webapp/components/admin_console/ldap_settings.jsx
+++ b/webapp/components/admin_console/ldap_settings.jsx
@@ -236,7 +236,7 @@ export default class LdapSettings extends AdminSettings {
helpText={
<FormattedMessage
id='admin.ldap.firstnameAttrDesc'
- defaultMessage='The attribute in the LDAP server that will be used to populate the first name of users in Mattermost.'
+ defaultMessage='(Optional) The attribute in the LDAP server that will be used to populate the first name of users in Mattermost.'
/>
}
value={this.state.firstNameAttribute}
@@ -255,7 +255,7 @@ export default class LdapSettings extends AdminSettings {
helpText={
<FormattedMessage
id='admin.ldap.lastnameAttrDesc'
- defaultMessage='The attribute in the LDAP server that will be used to populate the last name of users in Mattermost.'
+ defaultMessage='(Optional) The attribute in the LDAP server that will be used to populate the last name of users in Mattermost.'
/>
}
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 cc63e4fbf..07af50059 100644
--- a/webapp/components/user_settings/user_settings_general.jsx
+++ b/webapp/components/user_settings/user_settings_general.jsx
@@ -629,7 +629,9 @@ class UserSettingsGeneralTab extends React.Component {
if (this.props.activeSection === 'name') {
let extraInfo;
let submit = null;
- if (this.props.user.auth_service === '') {
+ if (this.props.user.auth_service === '' ||
+ (this.props.user.auth_service === 'ldap' &&
+ (global.window.mm_config.FirstNameAttributeSet === 'false' || global.window.mm_config.LastNameAttributeSet === 'false'))) {
inputs.push(
<div
key='firstNameSetting'
diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json
index 9f01f6251..b5e3b3645 100644
--- a/webapp/i18n/en.json
+++ b/webapp/i18n/en.json
@@ -401,13 +401,13 @@
"admin.ldap.emailAttrTitle": "Email Attribute:",
"admin.ldap.enableDesc": "When true, Mattermost allows login using LDAP",
"admin.ldap.enableTitle": "Enable sign-in with LDAP:",
- "admin.ldap.firstnameAttrDesc": "The attribute in the LDAP server that will be used to populate the first name of users in Mattermost.",
+ "admin.ldap.firstnameAttrDesc": "(Optional) The attribute in the LDAP server that will be used to populate the first name of users in Mattermost.",
"admin.ldap.firstnameAttrEx": "Ex \"givenName\"",
"admin.ldap.firstnameAttrTitle": "First Name Attribute",
"admin.ldap.idAttrDesc": "The attribute in the LDAP server that will be used as a unique identifier in Mattermost. It should be an LDAP attribute with a value that does not change, such as username or uid. If a user’s ID Attribute changes, it will create a new Mattermost account unassociated with their old one. This is the value used to log in to Mattermost in the \"LDAP Username\" field on the sign in page. Normally this attribute is the same as the “Username Attribute” field above. If your team typically uses domain\\username to sign in to other services with LDAP, you may choose to put domain\\username in this field to maintain consistency between sites.",
"admin.ldap.idAttrEx": "Ex \"sAMAccountName\"",
"admin.ldap.idAttrTitle": "ID Attribute: ",
- "admin.ldap.lastnameAttrDesc": "The attribute in the LDAP server that will be used to populate the last name of users in Mattermost.",
+ "admin.ldap.lastnameAttrDesc": "(Optional) The attribute in the LDAP server that will be used to populate the last name of users in Mattermost.",
"admin.ldap.lastnameAttrEx": "Ex \"sn\"",
"admin.ldap.lastnameAttrTitle": "Last Name Attribute:",
"admin.ldap.loginNameDesc": "The placeholder text that appears in the login field on the login page. Defaults to \"LDAP Username\".",