Skip to content

Commit

Permalink
Make ldap avatar source field customizable (#12958)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexbartsch authored Jun 19, 2020
1 parent 4af853a commit 5653a09
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 5 deletions.
1 change: 1 addition & 0 deletions app/ldap/server/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
Expand Down
5 changes: 4 additions & 1 deletion app/ldap/server/sync.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');

Expand Down
4 changes: 3 additions & 1 deletion packages/rocketchat-i18n/i18n/de-AT.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.<br/>Es können auch Template-Tags wie `#{givenNamen}.#{sn}` verwendet werden.<br/>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",
Expand Down Expand Up @@ -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 🎉"
}
}
6 changes: 4 additions & 2 deletions packages/rocketchat-i18n/i18n/de-IN.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.<br/>Ein Beispiel für Active-Directory: `memberOf=cn=ROCKET_CHAT,ou=General Groups`<br/>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.<br/>Es können auch Template-Tags wie `#{givenNamen}.#{sn}` verwendet werden.<br/>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.<br/>Es können auch Template-Tags wie `#{givenName}.#{sn}` verwendet werden.<br/>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",
Expand Down Expand Up @@ -3244,4 +3246,4 @@
"Your_question": "Deine Frage",
"Your_server_link": "Dein Server-Link",
"Your_workspace_is_ready": "Dein Arbeitsbereich ist einsatzbereit 🎉"
}
}
4 changes: 3 additions & 1 deletion packages/rocketchat-i18n/i18n/de.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.<br/>Es können auch Template-Tags wie `#{givenName}.#{sn}` verwendet werden.<br/>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",
Expand Down Expand Up @@ -3559,4 +3561,4 @@
"Your_server_link": "Ihre Serververbindung",
"Your_temporary_password_is_password": "Ihr temporäres Passwort lautet <strong>[password]</strong>.",
"Your_workspace_is_ready": "Ihr Arbeitsbereich ist einsatzbereit 🎉"
}
}
2 changes: 2 additions & 0 deletions packages/rocketchat-i18n/i18n/en.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.<br/>You can use template tags too, like `#{givenName}.#{sn}`.<br/>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",
Expand Down

0 comments on commit 5653a09

Please sign in to comment.