X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FUserMenu.java;h=1c35600012d9c47e33d031e376bb1d98d627310f;hb=7eab8a52b56a763e0d0e5153d298ce658e41a22f;hp=9f6c2c0e73551355ec5465365314127a9a9ebdbe;hpb=72db84d77477228eb752e9e6bd6f8ea6edaa6421;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.cms/src/org/argeo/cms/util/UserMenu.java b/org.argeo.cms/src/org/argeo/cms/util/UserMenu.java
index 9f6c2c0e7..1c3560001 100644
--- a/org.argeo.cms/src/org/argeo/cms/util/UserMenu.java
+++ b/org.argeo.cms/src/org/argeo/cms/util/UserMenu.java
@@ -32,8 +32,6 @@ import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
/** The site-related user menu */
public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
@@ -44,13 +42,13 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
super(source.getDisplay(), SWT.NO_TRIM | SWT.BORDER | SWT.ON_TOP);
setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU);
- Authentication authentication = SecurityContextHolder.getContext()
- .getAuthentication();
- if (authentication == null)
- throw new CmsException("No authentication available");
+ // Authentication authentication = SecurityContextHolder.getContext()
+ // .getAuthentication();
+ // if (authentication == null)
+ // throw new CmsException("No authentication available");
- String username = authentication.getName();
- if (username.equals(KernelHeader.USERNAME_ANONYMOUS)) {
+ String username = CurrentUserUtils.getUsername();
+ if (username.equalsIgnoreCase(KernelHeader.ROLE_ANONYMOUS)) {
username = null;
anonymousUi();
} else {
@@ -75,20 +73,23 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
}
protected void userUi() {
- setLayout(new GridLayout());
-
- String username = SecurityContextHolder.getContext()
- .getAuthentication().getName();
-
- Label l = new Label(this, SWT.NONE);
- l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM);
- l.setData(RWT.MARKUP_ENABLED, true);
- l.setLayoutData(CmsUtils.fillWidth());
- l.setText("" + username + "");
-
- specificUserUi(this);
-
- l = new Label(this, SWT.NONE);
+ setLayout(CmsUtils.noSpaceGridLayout());
+ Composite c = new Composite(this, SWT.NONE);
+ c.setLayout(new GridLayout());
+ c.setLayoutData(CmsUtils.fillAll());
+
+ // String username = SecurityContextHolder.getContext()
+ // .getAuthentication().getName();
+ //
+ // Label l = new Label(c, SWT.NONE);
+ // l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM);
+ // l.setData(RWT.MARKUP_ENABLED, true);
+ // l.setLayoutData(CmsUtils.fillWidth());
+ // l.setText("" + username + "");
+
+ specificUserUi(c);
+
+ Label l = new Label(c, SWT.NONE);
l.setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU_ITEM);
l.setText(CmsMsg.logout.lead());
GridData lData = CmsUtils.fillWidth();
@@ -104,11 +105,11 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
});
}
- protected String getUsername() {
- String username = SecurityContextHolder.getContext()
- .getAuthentication().getName();
- return username;
- }
+ // protected String getUsername() {
+ // // String username = SecurityContextHolder.getContext()
+ // // .getAuthentication().getName();
+ // return CurrentUserUtils.getUsername();
+ // }
/** To be overridden */
protected void specificUserUi(Composite parent) {
@@ -116,19 +117,27 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
}
protected void anonymousUi() {
- Integer textWidth = 150;
+ setLayout(CmsUtils.noSpaceGridLayout());
+
+ // We need a composite for the traversal
+ Composite c = new Composite(this, SWT.NONE);
+ c.setLayout(new GridLayout());
+ c.setLayoutData(CmsUtils.fillAll());
+
+ Integer textWidth = 120;
setData(RWT.CUSTOM_VARIANT, CMS_USER_MENU);
- setLayout(new GridLayout(2, false));
- new Label(this, SWT.NONE).setText(CmsMsg.username.lead());
- username = new Text(this, SWT.BORDER);
+ // new Label(this, SWT.NONE).setText(CmsMsg.username.lead());
+ username = new Text(c, SWT.BORDER);
+ username.setMessage(CmsMsg.username.lead());
username.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG_USERNAME);
GridData gd = CmsUtils.fillWidth();
gd.widthHint = textWidth;
username.setLayoutData(gd);
- new Label(this, SWT.NONE).setText(CmsMsg.password.lead());
- password = new Text(this, SWT.BORDER | SWT.PASSWORD);
+ // new Label(this, SWT.NONE).setText(CmsMsg.password.lead());
+ password = new Text(c, SWT.BORDER | SWT.PASSWORD);
+ password.setMessage(CmsMsg.password.lead());
password.setData(RWT.CUSTOM_VARIANT, CMS_LOGIN_DIALOG_PASSWORD);
gd = CmsUtils.fillWidth();
gd.widthHint = textWidth;
@@ -142,8 +151,12 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
login();
}
};
+ c.addTraverseListener(tl);
username.addTraverseListener(tl);
password.addTraverseListener(tl);
+ setTabList(new Control[] { c });
+ c.setTabList(new Control[] { username, password });
+ c.setFocus();
}
protected void login() {
@@ -190,6 +203,7 @@ public class UserMenu extends Shell implements CmsStyles, CallbackHandler {
}
close();
dispose();
+ cmsSession.navigateTo("~");
cmsSession.authChange();
}