Make ODK submission compatible with ACR
[gpl/argeo-suite.git] / org.argeo.app.jcr / src / org / argeo / internal / app / jcr / AppUserStateImpl.java
index faf217ac65fa853cf28bb1cf2571cca28787b3a3..5b481f73e0bab92cee791f12d6aab6941fb6c4cd 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.internal.app.jcr;
 import javax.jcr.Node;
 
 import org.argeo.api.acr.Content;
+import org.argeo.api.acr.ContentRepository;
 import org.argeo.api.acr.ContentSession;
 import org.argeo.api.cms.CmsConstants;
 import org.argeo.api.cms.CmsSession;
@@ -13,17 +14,18 @@ import org.argeo.cms.jcr.acr.JcrContentProvider;
 import org.argeo.jcr.Jcr;
 
 public class AppUserStateImpl implements AppUserState {
+       private ContentRepository contentRepository;
        private JcrContentProvider jcrContentProvider;
 
        @SuppressWarnings("deprecation")
        @Override
-       public Content getOrCreateSessionDir(ContentSession contentSession, CmsSession session) {
+       public Content getOrCreateSessionDir(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));
+               });             
+               ContentSession contentSession = ContentUtils.openSession(contentRepository, session); 
+               Content userDir = contentSession.get(Content.ROOT_PATH + CmsConstants.SYS_WORKSPACE + Jcr.getPath(userDirNode));
                return userDir;
        }
 
@@ -31,4 +33,8 @@ public class AppUserStateImpl implements AppUserState {
                this.jcrContentProvider = jcrContentProvider;
        }
 
+       public void setContentRepository(ContentRepository contentRepository) {
+               this.contentRepository = contentRepository;
+       }
+
 }