]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/util/LoginEntryPoint.java
Factorize userAdmin utils
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / util / LoginEntryPoint.java
index 4ccedd19bb2a5180873b481a188a439361018f2c..a05165f5bf18796b66f83e0e01f8c838f4e77a97 100644 (file)
@@ -13,10 +13,11 @@ import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsImageManager;
 import org.argeo.cms.CmsView;
 import org.argeo.cms.auth.AuthConstants;
+import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.ui.UxContext;
 import org.argeo.cms.widgets.auth.CmsLogin;
 import org.argeo.cms.widgets.auth.CmsLoginShell;
-import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.eclipse.ui.specific.UiContext;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.application.EntryPoint;
@@ -28,6 +29,7 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
        // private final static Log log = LogFactory.getLog(WorkbenchLogin.class);
        private final Subject subject = new Subject();
        private LoginContext loginContext;
+       private UxContext uxContext = null;
 
        @Override
        public int createUI() {
@@ -42,22 +44,26 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
                        CmsLoginShell loginShell = createCmsLoginShell();
                        loginShell.open();
                        while (!loginShell.getShell().isDisposed()) {
-                               try {
-                                       if (!display.readAndDispatch())
-                                               display.sleep();
-                               } catch (Exception e1) {
-                                       try {
-                                               Thread.sleep(3000);
-                                       } catch (InterruptedException e2) {
-                                               // silent
-                                       }
-                                       ErrorFeedback.show("Login failed", e1);
-                                       return -1;
-                               }
+                               // try {
+                               if (!display.readAndDispatch())
+                                       display.sleep();
+                               // } catch (Exception e1) {
+                               // try {
+                               // Thread.sleep(3000);
+                               // } catch (InterruptedException e2) {
+                               // // silent
+                               // }
+                               // ErrorFeedback.show("Login failed", e1);
+                               // return -1;
+                               // }
                        }
                } catch (LoginException e) {
                        throw new ArgeoException("Cannot log in", e);
                }
+
+               if (CurrentUser.getUsername() == null)
+                       return -1;
+               uxContext = new SimpleUxContext();
                return postLogin();
        }
 
@@ -145,4 +151,10 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
                // TODO Auto-generated method stub
                return null;
        }
+
+       @Override
+       public UxContext getUxContext() {
+               return uxContext;
+       }
+
 }