import java.util.Set;
import java.util.TreeSet;
-import javax.naming.ldap.LdapName;
import javax.swing.GroupLayout.Group;
import javax.xml.namespace.QName;
import org.argeo.api.acr.spi.ContentProvider;
import org.argeo.api.acr.spi.ProvidedSession;
import org.argeo.cms.acr.AbstractContent;
-import org.argeo.osgi.useradmin.LdapNameUtils;
import org.argeo.util.naming.LdapAttrs;
import org.argeo.util.naming.LdapObjs;
import org.osgi.service.useradmin.Role;
import org.osgi.service.useradmin.User;
-public class RoleContent extends AbstractContent {
+class RoleContent extends AbstractContent {
private DirectoryContentProvider provider;
private HierarchyUnitContent parent;
@Override
public QName getName() {
- LdapName dn = LdapNameUtils.toLdapName(role.getName());
- String name = LdapNameUtils.getLastRdnAsString(dn);
+ String name = parent.getHierarchyUnit().getDirectory().getRoleSimpleName(role);
return new ContentName(name);
}
@Override
public List<QName> getTypes() {
List<QName> contentClasses = new ArrayList<>();
- keys: for (Enumeration<String> it = role.getProperties().keys(); it.hasMoreElements();) {
- String key = it.nextElement();
- if (key.equalsIgnoreCase(LdapAttrs.objectClass.name())) {
- String[] objectClasses = role.getProperties().get(key).toString().split("\\n");
- objectClasses: for (String objectClass : objectClasses) {
- if (LdapObjs.top.name().equalsIgnoreCase(objectClass))
- continue objectClasses;
- contentClasses.add(new ContentName(CrName.LDAP_NAMESPACE_URI, objectClass, provider));
- }
- break keys;
- }
+ String objectClass = role.getProperties().get(LdapAttrs.objectClass.name()).toString();
+ contentClasses.add(new ContentName(CrName.LDAP_NAMESPACE_URI, objectClass, provider));
+
+ String[] objectClasses = role.getProperties().get(LdapAttrs.objectClasses.name()).toString().split("\\n");
+ objectClasses: for (String oc : objectClasses) {
+ if (LdapObjs.top.name().equalsIgnoreCase(oc))
+ continue objectClasses;
+ if (objectClass.equalsIgnoreCase(oc))
+ continue objectClasses;
+ contentClasses.add(new ContentName(CrName.LDAP_NAMESPACE_URI, oc, provider));
}
return contentClasses;
}