X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FSuiteApp.java;h=204688d81b360bf7c9b34673ced7d55c33ec70b3;hb=330996fb36d95edaf30d0dc2086aa549155464c3;hp=8bbe7d3aceb15e9f51c17d1eff3d93a4c8f4e657;hpb=97286adeb9f00e02c4a245674ff45628f8aaa9de;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java index 8bbe7d3..204688d 100644 --- a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java +++ b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java @@ -16,8 +16,7 @@ import java.util.TreeSet; import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.nodetype.NodeType; -import javax.naming.InvalidNameException; -import javax.naming.ldap.LdapName; +import javax.xml.namespace.QName; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentRepository; @@ -32,11 +31,11 @@ import org.argeo.app.api.EntityConstants; import org.argeo.app.api.EntityNames; import org.argeo.app.api.EntityType; import org.argeo.app.api.RankedObject; -import org.argeo.app.core.SuiteUtils; import org.argeo.cms.AbstractCmsApp; import org.argeo.cms.CmsUserManager; import org.argeo.cms.LocaleUtils; import org.argeo.cms.Localized; +import org.argeo.cms.acr.ContentUtils; import org.argeo.cms.jcr.CmsJcrUtils; import org.argeo.cms.jcr.acr.JcrContent; import org.argeo.cms.swt.CmsSwtUtils; @@ -351,7 +350,22 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { } } else { - throw new UnsupportedOperationException("Content " + content.getClass().getName() + " is not supported."); + + List objectClasses = content.getTypes(); + Set types = new TreeSet<>(); + for (QName cc : objectClasses) { + String type = cc.getPrefix() + ":" + cc.getLocalPart(); + if (byType.containsKey(type)) + types.add(type); + } + if (types.size() == 0) + throw new IllegalArgumentException("No type found for " + content + " (" + objectClasses + ")"); + String type = types.iterator().next(); + if (!byType.containsKey(type)) + throw new IllegalArgumentException("No component found for " + content + " with type " + type); + return byType.get(type).get(); + // throw new UnsupportedOperationException("Content " + + // content.getClass().getName() + " is not supported."); } } @@ -558,15 +572,16 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { User user = cmsUserManager.getUser(username); if (user == null) return null; - LdapName userDn; - try { - userDn = new LdapName(user.getName()); - } catch (InvalidNameException e) { - throw new IllegalArgumentException("Badly formatted username", e); - } - String userNodePath = SuiteUtils.getUserNodePath(userDn); + node = ContentUtils.roleToContent(cmsUserManager, contentSession, user); +// LdapName userDn; +// try { +// userDn = new LdapName(user.getName()); +// } catch (InvalidNameException e) { +// throw new IllegalArgumentException("Badly formatted username", e); +// } +// String userNodePath = SuiteUtils.getUserNodePath(userDn); // FIXME deal with home path - return null; +// return null; // if (Jcr.itemExists(session, userNodePath)) // node = Jcr.getNode(session, userNodePath); // else {