In Firmen sind LDAP oder Active Directory häufig das Mittel der Wahl um zentral die Nutzer und deren Passwörter zu verwalten. Fast alle Services, von Atlassian Jira bis JetBrains Youtrack, lassen sich recht einfach an LDAP anbinden. In früheren Artikeln habe ich das exemplarisch für OwnCloud und Gerrit bereits erläutert.
Bei Gerrit kann es dann leider zu einem hässlichen Nebeneffekt kommen: Statt den Namen einer Person anzuzeigen wird diese nur markig als „Anonymous Coward“ betitelt. In den Settings zum eigenen Account gibt es zwar ein Feld, um den Anzeigenamen zu definieren – das ist aber ausgegraut. Statt dessen prangt dort ein Reload button. Doch egal wie häufig man diesen drückt, das Feld für den Anzeigenamen bleibt leer. Was ist passiert?
In der gerrit.config gibt es die Sektion [ldap] in der man unter anderem den server einträgt. Dort kann man auch optional das Feld accountFullName eintragen. Was sagt die Dokumentation dazu?
Name of an attribute on the user account object which contains the initial value for the user’s full name field in Gerrit. Typically this is the displayName property in LDAP, but could also be legalName or cn. […] If set, users will be unable to modify their full name field, as Gerrit will populate it only from the LDAP data.
[Das wäre ja soweit kein Problem. Aber…]
Default is displayName for RFC 2307 servers, and ${givenName} ${sn} for Active Directory.http://gerrit-documentation.googlecode.com/svn/Documentation/2.7/config-gerrit.html#_a_id_ldap_a_section_ldap
Es ist schon etwas perfide, dass der Standardwert für das Feld die oben beschriebenen Auswirkungen hat, wenn displayName nicht verwendet wird. Die Lösung ist entweder, dem Schlüssel einen leeren Wert zuzuweisen – dann kann jeder Nutzer seinen Namen manuell verwalten – oder den AD-Standard ${givenName} ${sn} zu nutzen. In unserem Fall bekommen die Nutzer nun ihren korrekten Namen angezeigt und müssen sich nicht mehr länger von einem daher gelaufenen Review Tool beschimpfen lassen.