Create new user as a POSIX account
[gpl/argeo-suite.git] / org.argeo.app.ui / src / org / argeo / app / ui / SuiteUi.java
index b2e43852bed2441ac2d47e8a37adde5bc18229fb..de060df0b086563f90d5653039bc8fe35b726c42 100644 (file)
@@ -3,18 +3,12 @@ package org.argeo.app.ui;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.jcr.Node;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.api.cms.CmsUi;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.acr.Content;
 import org.argeo.api.cms.CmsLog;
-import org.argeo.api.cms.CmsConstants;
+import org.argeo.api.cms.ux.CmsUi;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.cms.Localized;
 import org.argeo.cms.swt.CmsSwtUtils;
-import org.argeo.jcr.Jcr;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -32,9 +26,9 @@ class SuiteUi extends Composite implements CmsUi {
        private Composite sidePane;
        private Composite dynamicArea;
 
-       private Session sysSession;
-       private Session homeSession;
-       private Node userDir;
+//     private Session sysSession;
+//     private Session homeSession;
+       private Content userDir;
 
        private Map<String, SuiteLayer> layers = new HashMap<>();
        private Map<String, Composite> workAreas = new HashMap<>();
@@ -106,7 +100,7 @@ class SuiteUi extends Composite implements CmsUi {
                return currentLayerId;
        }
 
-       private Composite getLayer(String id, Node context) {
+       private Composite getLayer(String id, Content context) {
                if (!layers.containsKey(id))
                        return null;
                if (!workAreas.containsKey(id))
@@ -114,7 +108,7 @@ class SuiteUi extends Composite implements CmsUi {
                return workAreas.get(id);
        }
 
-       Composite switchToLayer(String layerId, Node context) {
+       Composite switchToLayer(String layerId, Content context) {
                Composite current = null;
                if (currentLayerId != null) {
                        current = getCurrentWorkArea();
@@ -123,7 +117,7 @@ class SuiteUi extends Composite implements CmsUi {
                }
                if (context == null) {
                        if (!cmsView.isAnonymous())
-                               context = userDir;
+                               context = getUserDirNode();
                }
                Composite toShow = getLayer(layerId, context);
                if (toShow != null) {
@@ -146,12 +140,13 @@ class SuiteUi extends Composite implements CmsUi {
                }
        }
 
-       Composite switchToLayer(SuiteLayer layer, Node context) {
+       void switchToLayer(SuiteLayer layer, Content context) {
                // TODO make it more robust
                for (String layerId : layers.keySet()) {
                        SuiteLayer l = layers.get(layerId);
-                       if (layer == l) {
-                               return switchToLayer(layerId, context);
+                       if (layer.getId().equals(l.getId())) {
+                               switchToLayer(layerId, context);
+                               return;
                        }
                }
                throw new IllegalArgumentException("Layer is not registered.");
@@ -170,7 +165,7 @@ class SuiteUi extends Composite implements CmsUi {
                }
        }
 
-       protected Composite initLayer(String id, SuiteLayer layer, Node context) {
+       protected Composite initLayer(String id, SuiteLayer layer, Content context) {
                Composite workArea = cmsView.doAs(() -> (Composite) layer.createUiPart(dynamicArea, context));
                CmsSwtUtils.style(workArea, SuiteStyle.workArea);
                workArea.setLayoutData(CmsSwtUtils.coverAll());
@@ -180,8 +175,8 @@ class SuiteUi extends Composite implements CmsUi {
 
        synchronized void logout() {
                userDir = null;
-               Jcr.logout(sysSession);
-               Jcr.logout(homeSession);
+//             Jcr.logout(sysSession);
+//             Jcr.logout(homeSession);
                currentLayerId = null;
                workAreas.clear();
        }
@@ -214,35 +209,46 @@ class SuiteUi extends Composite implements CmsUi {
 //             return sysSession;
 //     }
 //
-       synchronized void initSessions(Repository repository, String userDirPath) throws RepositoryException {
-               this.sysSession = repository.login();
-               this.homeSession = repository.login(CmsConstants.HOME_WORKSPACE);
-               userDir = sysSession.getNode(userDirPath);
-               addDisposeListener((e) -> {
-                       Jcr.logout(sysSession);
-                       Jcr.logout(homeSession);
-               });
-       }
+//     synchronized void initSessions(Repository repository, String userDirPath) throws RepositoryException {
+//             this.sysSession = repository.login();
+//             this.homeSession = repository.login(CmsConstants.HOME_WORKSPACE);
+//             userDir = sysSession.getNode(userDirPath);
+//             addDisposeListener((e) -> {
+//                     Jcr.logout(sysSession);
+//                     Jcr.logout(homeSession);
+//             });
+//     }
 
-       Node getUserDir() {
+       @Deprecated
+       Content getUserDirNode() {
+               if (userDir == null)
+                       return null;
                return userDir;
        }
 
-       Session getSysSession() {
-               return sysSession;
+       Content getUserDir() {
+               return userDir;
        }
 
-       Session getSession(String workspaceName) {
-               if (workspaceName == null)
-                       return sysSession;
-               if (CmsConstants.SYS_WORKSPACE.equals(workspaceName))
-                       return sysSession;
-               else if (CmsConstants.HOME_WORKSPACE.equals(workspaceName))
-                       return homeSession;
-               else
-                       throw new IllegalArgumentException("Unknown workspace " + workspaceName);
+       void setUserDir(Content userDir) {
+               this.userDir = userDir;
        }
 
+//     Session getSysSession() {
+//             return sysSession;
+//     }
+
+//     Session getSession(String workspaceName) {
+//             if (workspaceName == null)
+//                     return sysSession;
+//             if (CmsConstants.SYS_WORKSPACE.equals(workspaceName))
+//                     return sysSession;
+//             else if (CmsConstants.HOME_WORKSPACE.equals(workspaceName))
+//                     return homeSession;
+//             else
+//                     throw new IllegalArgumentException("Unknown workspace " + workspaceName);
+//     }
+
        public CmsView getCmsView() {
                return cmsView;
        }