X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.app.core%2Fsrc%2Forg%2Fargeo%2Finternal%2Fapp%2Fcore%2FAppUserStateImpl.java;fp=org.argeo.app.core%2Fsrc%2Forg%2Fargeo%2Finternal%2Fapp%2Fcore%2FAppUserStateImpl.java;h=b7201a138dd78d045b054e757db4c56def53f182;hb=429d8b4a26d3ca458d8e800fbec05e3ee23b65a5;hp=0000000000000000000000000000000000000000;hpb=e007028c81cf85df3c23b761856779427f86a633;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.core/src/org/argeo/internal/app/core/AppUserStateImpl.java b/org.argeo.app.core/src/org/argeo/internal/app/core/AppUserStateImpl.java new file mode 100644 index 0000000..b7201a1 --- /dev/null +++ b/org.argeo.app.core/src/org/argeo/internal/app/core/AppUserStateImpl.java @@ -0,0 +1,33 @@ +package org.argeo.internal.app.core; + +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.core.SuiteUtils; +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; + + @Override + public Content getOrCreateSessionDir(ContentSession contentSession, CmsSession session) { + Node userDirNode = jcrContentProvider.doInAdminSession((adminSession) -> { + Node node = SuiteUtils.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; + } + +}