Clarify implementation-specific APIs
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / UserAdminUtils.java
index ad53086f5c206249d4b066fc7f5f90b0e087ab2b..3c24f98af3574627fc3f1bbe6fdf7762c7e165ba 100644 (file)
@@ -6,8 +6,9 @@ import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
-import org.argeo.api.NodeConstants;
-import org.argeo.naming.LdapAttrs;
+import org.argeo.api.acr.ldap.LdapAttrs;
+import org.argeo.api.cms.CmsConstants;
+import org.argeo.cms.CurrentUser;
 import org.osgi.service.useradmin.Role;
 import org.osgi.service.useradmin.User;
 import org.osgi.service.useradmin.UserAdmin;
@@ -67,16 +68,19 @@ public class UserAdminUtils {
         */
        public static String getUserDisplayName(UserAdmin userAdmin, String dn) {
                Role user = userAdmin.getRole(dn);
-               String dName;
                if (user == null)
-                       dName = getUserLocalId(dn);
-               else {
-                       dName = getProperty(user, LdapAttrs.displayName.name());
-                       if (isEmpty(dName))
-                               dName = getProperty(user, LdapAttrs.cn.name());
-                       if (isEmpty(dName))
-                               dName = getUserLocalId(dn);
-               }
+                       return getUserLocalId(dn);
+               return getUserDisplayName(user);
+       }
+
+       public static String getUserDisplayName(Role user) {
+               String dName = getProperty(user, LdapAttrs.displayName.name());
+               if (isEmpty(dName))
+                       dName = getProperty(user, LdapAttrs.cn.name());
+               if (isEmpty(dName))
+                       dName = getProperty(user, LdapAttrs.uid.name());
+               if (isEmpty(dName))
+                       dName = getUserLocalId(user.getName());
                return dName;
        }
 
@@ -135,9 +139,9 @@ public class UserAdminUtils {
        /** Simply retrieves a display name of the relevant domain */
        public final static String getDomainName(User user) {
                String dn = user.getName();
-               if (dn.endsWith(NodeConstants.ROLES_BASEDN))
+               if (dn.endsWith(CmsConstants.SYSTEM_ROLES_BASEDN))
                        return "System roles";
-               if (dn.endsWith(NodeConstants.TOKENS_BASEDN))
+               if (dn.endsWith(CmsConstants.TOKENS_BASEDN))
                        return "Tokens";
                try {
                        // FIXME deal with non-DC