X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FSuiteApp.java;h=3dc5007fc0be274380ee18dd68436a30b62e9bc5;hb=302839c70d637be5a555290bd4542b9b1c63c17d;hp=0bfd20b69b845b921e479ed5caf2528f6964d70d;hpb=5cb7c83838117e3424d9dd2a5244d203df413f59;p=gpl%2Fargeo-suite.git diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java index 0bfd20b..3dc5007 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java @@ -25,6 +25,7 @@ import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsEventSubscriber; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.CmsSession; +import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.api.cms.ux.CmsTheme; import org.argeo.api.cms.ux.CmsUi; import org.argeo.api.cms.ux.CmsView; @@ -32,20 +33,21 @@ import org.argeo.app.api.EntityConstants; import org.argeo.app.api.EntityNames; import org.argeo.app.api.EntityType; import org.argeo.app.api.RankedObject; +import org.argeo.app.core.SuiteUtils; import org.argeo.cms.AbstractCmsApp; -import org.argeo.cms.CmsUserManager; import org.argeo.cms.LocaleUtils; import org.argeo.cms.Localized; import org.argeo.cms.acr.ContentUtils; import org.argeo.cms.jcr.CmsJcrUtils; import org.argeo.cms.jcr.acr.JcrContent; +import org.argeo.cms.jcr.acr.JcrContentProvider; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.acr.SwtUiProvider; import org.argeo.cms.swt.dialogs.CmsFeedback; +import org.argeo.cms.util.LangUtils; import org.argeo.cms.ux.CmsUxUtils; import org.argeo.eclipse.ui.specific.UiContext; import org.argeo.jcr.JcrException; -import org.argeo.util.LangUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.osgi.framework.Constants; @@ -93,7 +95,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { // ACR private ContentRepository contentRepository; -// private JcrContentProvider jcrContentProvider; + private JcrContentProvider jcrContentProvider; // JCR // private Repository repository; @@ -233,8 +235,15 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { .get(ContentUtils.SLASH + CmsConstants.SYS_WORKSPACE + publicBasePath); ui.setUserDir(userDir); } else { - Content userDir = contentSession.getSessionRunDir(); + Node userDirNode = jcrContentProvider.doInAdminSession((adminSession) -> { + Node node = SuiteUtils.getOrCreateCmsSessionNode(adminSession, cmsSession); + return node; + }); + Content userDir = contentSession + .get(ContentUtils.SLASH + CmsConstants.SYS_WORKSPACE + userDirNode.getPath()); ui.setUserDir(userDir); +// Content userDir = contentSession.getSessionRunDir(); +// ui.setUserDir(userDir); } } initLocale(cmsSession); @@ -638,4 +647,9 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { public void setContentRepository(ContentRepository contentRepository) { this.contentRepository = contentRepository; } + + public void setJcrContentProvider(JcrContentProvider jcrContentProvider) { + this.jcrContentProvider = jcrContentProvider; + } + }