X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FContentUtils.java;h=bf5954411bc157a32003bf17d3e4363e8ee9d5bc;hb=f5c293792ad697475d29073069c05063d7218c0b;hp=0513a0d3e4354a447c125b21559da75953fe873a;hpb=0bccba2b9f1ac5d0be1a06dcb4fe56859f641b9a;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 0513a0d3e..bf5954411 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/ContentUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/ContentUtils.java @@ -16,6 +16,7 @@ import org.argeo.api.acr.ContentRepository; import org.argeo.api.acr.ContentSession; import org.argeo.api.acr.DName; import org.argeo.api.cms.CmsAuth; +import org.argeo.api.cms.CmsSession; import org.argeo.api.cms.directory.CmsDirectory; import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.api.cms.directory.HierarchyUnit; @@ -176,7 +177,7 @@ public class ContentUtils { } } - public static ContentSession openDataAdminSession(ContentRepository repository) { + public static ContentSession openDataAdminSession(ContentRepository contentRepository) { LoginContext loginContext; try { loginContext = CmsAuth.DATA_ADMIN.newLoginContext(); @@ -189,12 +190,16 @@ public class ContentUtils { ClassLoader currentCl = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(ContentUtils.class.getClassLoader()); - return CurrentSubject.callAs(loginContext.getSubject(), () -> repository.get()); + return CurrentSubject.callAs(loginContext.getSubject(), () -> contentRepository.get()); } finally { Thread.currentThread().setContextClassLoader(currentCl); } } + public static ContentSession openSession(ContentRepository contentRepository, CmsSession cmsSession) { + return CurrentSubject.callAs(cmsSession.getSubject(), () -> contentRepository.get()); + } + /** * Constructs a relative path between a base path and a given path. *