X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FContentUtils.java;h=5ea79662a387341f5d902c58f0fdc5c95de74f3b;hb=763feb49d5ba4b6275c7ad069df471bbd7047224;hp=272a5c5a148d3f51b3315fad79918e4837aed3c9;hpb=4c7e1885b8bf3c93fa0919ace122e3f289a925ea;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/ContentUtils.java b/org.argeo.cms/src/org/argeo/cms/acr/ContentUtils.java index 272a5c5a1..5ea79662a 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/ContentUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/ContentUtils.java @@ -3,11 +3,16 @@ package org.argeo.cms.acr; import java.io.PrintStream; import java.util.ArrayList; import java.util.List; +import java.util.StringJoiner; import java.util.function.BiConsumer; import javax.xml.namespace.QName; import org.argeo.api.acr.Content; +import org.argeo.api.acr.ContentSession; +import org.argeo.cms.CmsUserManager; +import org.argeo.osgi.useradmin.UserDirectory; +import org.osgi.service.useradmin.Role; /** Utilities and routines around {@link Content}. */ public class ContentUtils { @@ -78,6 +83,13 @@ public class ContentUtils { path.substring(parentIndex + 1) }; } + public static String toPath(List segments) { + // TODO checks + StringJoiner sj = new StringJoiner("/"); + segments.forEach((s) -> sj.add(s)); + return sj.toString(); + } + public static List toPathSegments(String path) { List res = new ArrayList<>(); if ("".equals(path) || ROOT_SLASH.equals(path)) @@ -106,4 +118,12 @@ public class ContentUtils { } + public static Content roleToContent(CmsUserManager userManager, ContentSession contentSession, Role role) { + UserDirectory userDirectory = userManager.getDirectory(role); + String path = CmsContentRepository.DIRECTORY_BASE + SLASH + userDirectory.getName() + SLASH + + userDirectory.getRolePath(role); + Content content = contentSession.get(path); + return content; + } + }