Make ODK submission compatible with ACR
[gpl/argeo-suite.git] / org.argeo.app.jcr / src / org / argeo / internal / app / jcr / AppUserStateImpl.java
index bb2bc15be622c3a0a0f091816564dc3c6ede38e4..5b481f73e0bab92cee791f12d6aab6941fb6c4cd 100644 (file)
@@ -3,24 +3,28 @@ 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;
 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 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;
-               });
+               });             
+               ContentSession contentSession = ContentUtils.openSession(contentRepository, session); 
                Content userDir = contentSession.get(Content.ROOT_PATH + CmsConstants.SYS_WORKSPACE + Jcr.getPath(userDirNode));
                return userDir;
        }
@@ -29,4 +33,8 @@ public class AppUserStateImpl implements AppUserState {
                this.jcrContentProvider = jcrContentProvider;
        }
 
+       public void setContentRepository(ContentRepository contentRepository) {
+               this.contentRepository = contentRepository;
+       }
+
 }