From 5653a09b5dabc6331411aab0cef50af4444721a8 Mon Sep 17 00:00:00 2001 From: Alexander Bartsch Date: Fri, 19 Jun 2020 23:49:13 +0200 Subject: [PATCH] Make ldap avatar source field customizable (#12958) --- app/ldap/server/settings.js | 1 + app/ldap/server/sync.js | 5 ++++- packages/rocketchat-i18n/i18n/de-AT.i18n.json | 4 +++- packages/rocketchat-i18n/i18n/de-IN.i18n.json | 6 ++++-- packages/rocketchat-i18n/i18n/de.i18n.json | 4 +++- packages/rocketchat-i18n/i18n/en.i18n.json | 2 ++ 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/ldap/server/settings.js b/app/ldap/server/settings.js index c07c0e1e7fb..495b72dc1b2 100644 --- a/app/ldap/server/settings.js +++ b/app/ldap/server/settings.js @@ -117,6 +117,7 @@ settings.addGroup('LDAP', function() { this.add('LDAP_Sync_User_Data_Groups_Enforce_AutoChannels', false, { type: 'boolean', enableQuery: syncGroupsChannelsQuery }); this.add('LDAP_Sync_User_Avatar', true, { type: 'boolean', enableQuery }); + this.add('LDAP_Avatar_Field', '', { type: 'string', enableQuery }); this.add('LDAP_Background_Sync', false, { type: 'boolean', enableQuery }); this.add('LDAP_Background_Sync_Interval', 'Every 24 hours', { type: 'string', enableQuery: backgroundSyncQuery }); diff --git a/app/ldap/server/sync.js b/app/ldap/server/sync.js index a2e6a24eb9a..607db49b61c 100644 --- a/app/ldap/server/sync.js +++ b/app/ldap/server/sync.js @@ -394,8 +394,11 @@ export function syncUserData(user, ldapUser, ldap) { } } + const avatarField = (settings.get('LDAP_Avatar_Field') || 'thumbnailPhoto').trim(); + if (user && user._id && settings.get('LDAP_Sync_User_Avatar') === true) { - const avatar = ldapUser._raw.thumbnailPhoto || ldapUser._raw.jpegPhoto; + const avatar = ldapUser._raw[avatarField] || ldapUser._raw.thumbnailPhoto || ldapUser._raw.jpegPhoto; + if (avatar) { logger.info('Syncing user avatar'); diff --git a/packages/rocketchat-i18n/i18n/de-AT.i18n.json b/packages/rocketchat-i18n/i18n/de-AT.i18n.json index 0db2ae08e4a..a7594ce8583 100644 --- a/packages/rocketchat-i18n/i18n/de-AT.i18n.json +++ b/packages/rocketchat-i18n/i18n/de-AT.i18n.json @@ -1601,6 +1601,8 @@ "LDAP_User_Search_Scope": "Umfang", "LDAP_Username_Field": "Nutzernamenfeld", "LDAP_Username_Field_Description": "Geben Sie an, welches Feld als *Nutzername* für neue Benutzer verwendet werden soll. Lassen Sie das Feld leer, um den Nutzernamen zu verwenden, der auf der Anmeldeseite verwendet wird.
Es können auch Template-Tags wie `#{givenNamen}.#{sn}` verwendet werden.
Der Standardwert ist `sAMAccountName`.", + "LDAP_Avatar_Field": "Feld für das Benutzer Avatar", + "LDAP_Avatar_Field_Description": "Geben Sie an, welches Feld als *Benutzer Avatar* verwendet werden soll. Lassen Sie das Feld leer um das Feld `thumbnailPhoto` als primäres und `jpegPhoto` als alternatives Feld zu verwenden.", "Lead_capture_email_regex": "Lead Capture E-Mail Regex", "Lead_capture_phone_regex": "Lead Capture Telefon Regex", "leave-c": "Kanäle verlassen", @@ -2847,4 +2849,4 @@ "Your_push_was_sent_to_s_devices": "Die Push-Nachricht wurde an %s Geräte gesendet.", "Your_server_link": "Ihre Serververbindung", "Your_workspace_is_ready": "Ihr Arbeitsbereich ist einsatzbereit 🎉" -} \ No newline at end of file +} diff --git a/packages/rocketchat-i18n/i18n/de-IN.i18n.json b/packages/rocketchat-i18n/i18n/de-IN.i18n.json index 2e1afe1f6b2..12e4a13f864 100644 --- a/packages/rocketchat-i18n/i18n/de-IN.i18n.json +++ b/packages/rocketchat-i18n/i18n/de-IN.i18n.json @@ -1833,7 +1833,9 @@ "LDAP_User_Search_Filter_Description": "Wenn angegeben, wird nur Benutzern, die dem Filter entsprechen, erlaubt, sich anzumelden. Wenn kein Filter angegeben ist, werden sich alle Benutzer in dem Bereich der angegebenen Domainbasis anmelden können.
Ein Beispiel für Active-Directory: `memberOf=cn=ROCKET_CHAT,ou=General Groups`
Ein Beispiel für OpenLDAP (erweiterbare Übereinstimmungssuche): `ou:dn:=ROCKET_CHAT`", "LDAP_User_Search_Scope": "Scope", "LDAP_Username_Field": "Feld für den Benutzernamen", - "LDAP_Username_Field_Description": "Gib an, welches Feld als *Benutzername* für neue Benutzer verwendet werden soll. Lass das Feld leer, um den Nutzernamen zu verwenden, der auf der Anmeldeseite verwendet wird.
Es können auch Template-Tags wie `#{givenNamen}.#{sn}` verwendet werden.
Der Standardwert ist `sAMAccountName`.", + "LDAP": "LDAP", + "LDAP_Avatar_Field": "Feld für das Benutzer Avatar", + "LDAP_Username_Field_Description": "Gib an, welches Feld als *Benutzername* für neue Benutzer verwendet werden soll. Lass das Feld leer, um den Nutzernamen zu verwenden, der auf der Anmeldeseite verwendet wird.
Es können auch Template-Tags wie `#{givenName}.#{sn}` verwendet werden.
Der Standardwert ist `sAMAccountName`.", "Lead_capture_email_regex": "Lead Capture E-Mail Regex", "Lead_capture_phone_regex": "Lead Capture Telefon Regex", "leave-c": "Kanäle verlassen", @@ -3244,4 +3246,4 @@ "Your_question": "Deine Frage", "Your_server_link": "Dein Server-Link", "Your_workspace_is_ready": "Dein Arbeitsbereich ist einsatzbereit 🎉" -} \ No newline at end of file +} diff --git a/packages/rocketchat-i18n/i18n/de.i18n.json b/packages/rocketchat-i18n/i18n/de.i18n.json index ce2bcb70861..10a1f603f44 100644 --- a/packages/rocketchat-i18n/i18n/de.i18n.json +++ b/packages/rocketchat-i18n/i18n/de.i18n.json @@ -2007,6 +2007,8 @@ "LDAP_User_Search_Scope": "Scope", "LDAP_Username_Field": "Feld für den Benutzernamen", "LDAP_Username_Field_Description": "Geben Sie an, welches Feld als *Benutzername* für neue Benutzer verwendet werden soll. Lassen Sie das Feld leer, um den Nutzernamen zu verwenden, der auf der Anmeldeseite verwendet wird.
Es können auch Template-Tags wie `#{givenName}.#{sn}` verwendet werden.
Der Standardwert ist `sAMAccountName`.", + "LDAP_Avatar_Field": "Feld für das Benutzer Avatar", + "LDAP_Avatar_Field_Description": "Geben Sie an, welches Feld als *Benutzer Avatar* verwendet werden soll. Lassen Sie das Feld leer um das Feld `thumbnailPhoto` als primäres und `jpegPhoto` als alternatives Feld zu verwenden.", "Lead_capture_email_regex": "Lead Capture E-Mail Regex", "Lead_capture_phone_regex": "Lead Capture Telefon Regex", "leave-c": "Kanäle verlassen", @@ -3559,4 +3561,4 @@ "Your_server_link": "Ihre Serververbindung", "Your_temporary_password_is_password": "Ihr temporäres Passwort lautet [password].", "Your_workspace_is_ready": "Ihr Arbeitsbereich ist einsatzbereit 🎉" -} \ No newline at end of file +} diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index e570c31f819..014631852a7 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -2174,6 +2174,8 @@ "LDAP_User_Search_Scope": "Scope", "LDAP_Username_Field": "Username Field", "LDAP_Username_Field_Description": "Which field will be used as *username* for new users. Leave empty to use the username informed on login page.
You can use template tags too, like `#{givenName}.#{sn}`.
Default value is `sAMAccountName`.", + "LDAP_Avatar_Field": "User Avatar Field", + "LDAP_Avatar_Field_Description": " Which field will be used as *avatar* for users. Leave empty to use `thumbnailPhoto` first and `jpegPhoto` as fallback.", "Lead_capture_email_regex": "Lead capture email regex", "Lead_capture_phone_regex": "Lead capture phone regex", "leave-c": "Leave Channels",