X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.jcr%2Fsrc%2Forg%2Fargeo%2Finternal%2Fapp%2Fjcr%2FAppUserStateImpl.java;fp=org.argeo.app.jcr%2Fsrc%2Forg%2Fargeo%2Finternal%2Fapp%2Fjcr%2FAppUserStateImpl.java;h=faf217ac65fa853cf28bb1cf2571cca28787b3a3;hb=d6c9d33b61e475914d3f8d7534374ed30eca8150;hp=0000000000000000000000000000000000000000;hpb=618968cf9d259ccded45a9455a26c516dbfe828f;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java b/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java new file mode 100644 index 0000000..faf217a --- /dev/null +++ b/org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java @@ -0,0 +1,34 @@ +package org.argeo.internal.app.jcr; + +import javax.jcr.Node; + +import org.argeo.api.acr.Content; +import org.argeo.api.acr.ContentSession; +import org.argeo.api.cms.CmsConstants; +import org.argeo.api.cms.CmsSession; +import org.argeo.app.api.AppUserState; +import org.argeo.app.jcr.SuiteJcrUtils; +import org.argeo.cms.acr.ContentUtils; +import org.argeo.cms.jcr.acr.JcrContentProvider; +import org.argeo.jcr.Jcr; + +public class AppUserStateImpl implements AppUserState { + private JcrContentProvider jcrContentProvider; + + @SuppressWarnings("deprecation") + @Override + public Content getOrCreateSessionDir(ContentSession contentSession, CmsSession session) { + Node userDirNode = jcrContentProvider.doInAdminSession((adminSession) -> { + Node node = SuiteJcrUtils.getOrCreateCmsSessionNode(adminSession, session); + return node; + }); + Content userDir = contentSession + .get(ContentUtils.SLASH + CmsConstants.SYS_WORKSPACE + Jcr.getPath(userDirNode)); + return userDir; + } + + public void setJcrContentProvider(JcrContentProvider jcrContentProvider) { + this.jcrContentProvider = jcrContentProvider; + } + +}