import javax.naming.ldap.LdapName;
import javax.naming.ldap.Rdn;
-import org.argeo.api.NodeConstants;
-import org.argeo.cms.CmsException;
-import org.argeo.naming.LdapAttrs;
+import org.argeo.api.acr.ldap.LdapAttrs;
+import org.argeo.api.cms.CmsConstants;
import org.osgi.service.useradmin.Role;
import org.osgi.service.useradmin.User;
import org.osgi.service.useradmin.UserAdmin;
|| last.getType().toLowerCase().equals(LdapAttrs.cn.name()))
return (String) last.getValue();
else
- throw new CmsException("Cannot retrieve user local id, non valid dn: " + dn);
+ throw new IllegalArgumentException("Cannot retrieve user local id, non valid dn: " + dn);
}
/**
*/
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;
}
try {
return new LdapName(dn);
} catch (InvalidNameException e) {
- throw new CmsException("Cannot parse LDAP name " + dn, e);
+ throw new IllegalArgumentException("Cannot parse LDAP name " + dn, e);
}
}
/** 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
int i = 0;
loop: while (i < rdns.size()) {
Rdn currrRdn = rdns.get(i);
- if (!LdapAttrs.dc.name().equals(currrRdn.getType()))
+ if (LdapAttrs.uid.name().equals(currrRdn.getType()) || LdapAttrs.cn.name().equals(currrRdn.getType())
+ || LdapAttrs.ou.name().equals(currrRdn.getType()))
break loop;
else {
String currVal = (String) currrRdn.getValue();
}
return dname;
} catch (InvalidNameException e) {
- throw new CmsException("Unable to get domain name for " + dn, e);
+ throw new IllegalArgumentException("Unable to get domain name for " + dn, e);
}
}