]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.jcr/src/org/argeo/internal/app/jcr/AppUserStateImpl.java
Releasing
[gpl/argeo-suite.git] / org.argeo.app.jcr / src / org / argeo / internal / app / jcr / AppUserStateImpl.java
1 package org.argeo.internal.app.jcr;
2
3 import javax.jcr.Node;
4
5 import org.argeo.api.acr.Content;
6 import org.argeo.api.acr.ContentRepository;
7 import org.argeo.api.acr.ContentSession;
8 import org.argeo.api.cms.CmsConstants;
9 import org.argeo.api.cms.CmsSession;
10 import org.argeo.app.api.AppUserState;
11 import org.argeo.app.jcr.SuiteJcrUtils;
12 import org.argeo.cms.acr.ContentUtils;
13 import org.argeo.cms.jcr.acr.JcrContentProvider;
14 import org.argeo.jcr.Jcr;
15
16 public class AppUserStateImpl implements AppUserState {
17 private ContentRepository contentRepository;
18 private JcrContentProvider jcrContentProvider;
19
20 @SuppressWarnings("deprecation")
21 @Override
22 public Content getOrCreateSessionDir(CmsSession session) {
23 Node userDirNode = jcrContentProvider.doInAdminSession((adminSession) -> {
24 Node node = SuiteJcrUtils.getOrCreateCmsSessionNode(adminSession, session);
25 return node;
26 });
27 ContentSession contentSession = ContentUtils.openSession(contentRepository, session);
28 Content userDir = contentSession.get(Content.ROOT_PATH + CmsConstants.SYS_WORKSPACE + Jcr.getPath(userDirNode));
29 return userDir;
30 }
31
32 public void setJcrContentProvider(JcrContentProvider jcrContentProvider) {
33 this.jcrContentProvider = jcrContentProvider;
34 }
35
36 public void setContentRepository(ContentRepository contentRepository) {
37 this.contentRepository = contentRepository;
38 }
39
40 }