Merge tag 'v2.3.28' into testing
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / osgi / useradmin / LdifUser.java
index e48869a0113cc149f4bb59d48414457f5fa9bbc6..de383bde8a4f46a726f1ed2a1906f60047c434e4 100644 (file)
@@ -2,12 +2,14 @@ package org.argeo.cms.osgi.useradmin;
 
 import javax.naming.ldap.LdapName;
 
-import org.argeo.api.cms.directory.CmsUser;
+import org.argeo.api.acr.ldap.LdapAttr;
+import org.argeo.cms.auth.UserAdminUtils;
 import org.argeo.cms.directory.ldap.AbstractLdapDirectory;
 import org.argeo.cms.directory.ldap.DefaultLdapEntry;
+import org.argeo.cms.util.LangUtils;
 
 /** Directory user implementation */
-class LdifUser extends DefaultLdapEntry implements CmsUser {
+class LdifUser extends DefaultLdapEntry implements CmsOsgiUser {
        LdifUser(AbstractLdapDirectory userAdmin, LdapName dn) {
                super(userAdmin, dn);
        }
@@ -22,4 +24,15 @@ class LdifUser extends DefaultLdapEntry implements CmsUser {
                return USER;
        }
 
+       public String getDisplayName() {
+               String dName = getPropertyAsString(LdapAttr.displayName);
+               if (LangUtils.isEmpty(dName))
+                       dName = getPropertyAsString(LdapAttr.cn);
+               if (LangUtils.isEmpty(dName))
+                       dName = getPropertyAsString(LdapAttr.uid);
+               if (LangUtils.isEmpty(dName))
+                       dName = UserAdminUtils.getUserLocalId(getName());
+               return dName;
+       }
+
 }