From 87b6a999df6baf57ca21c29f1e2240cf41e354a1 Mon Sep 17 00:00:00 2001 From: bsinou Date: Sun, 12 Mar 2017 11:24:42 +0100 Subject: [PATCH] Few enhancements --- .../cms/ui/workbench/UserHomePerspective.java | 7 ++----- .../internal/useradmin/parts/GroupsView.java | 5 ++++- .../useradmin/providers/UserFilter.java | 17 ++++++++--------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/UserHomePerspective.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/UserHomePerspective.java index 86caad9c4..ee91b4ea1 100644 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/UserHomePerspective.java +++ b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/UserHomePerspective.java @@ -23,18 +23,15 @@ import org.eclipse.ui.IPerspectiveFactory; /** Home perspective for the current user */ public class UserHomePerspective implements IPerspectiveFactory { - public final static String ID = WorkbenchUiPlugin.PLUGIN_ID - + ".userHomePerspective"; + public final static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".userHomePerspective"; public void createInitialLayout(IPageLayout layout) { String editorArea = layout.getEditorArea(); layout.setEditorAreaVisible(true); layout.setFixed(false); - IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, - 0.30f, editorArea); + IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.30f, editorArea); left.addView(UserProfile.ID); left.addView(LogView.ID); } - } diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/GroupsView.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/GroupsView.java index 580e05150..0d33677ac 100644 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/GroupsView.java +++ b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/GroupsView.java @@ -144,7 +144,7 @@ public class GroupsView extends ViewPart implements ArgeoNames { private class MyUserTableViewer extends LdifUsersTable { private static final long serialVersionUID = 8467999509931900367L; - private boolean showSystemRoles = false; + private boolean showSystemRoles; private final String[] knownProps = { LdapAttrs.uid.name(), LdapAttrs.cn.name(), LdapAttrs.DN }; @@ -158,6 +158,9 @@ public class GroupsView extends ViewPart implements ArgeoNames { final Button showSystemRoleBtn = new Button(staticFilterCmp, SWT.CHECK); showSystemRoleBtn.setText("Show system roles"); + showSystemRoles = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN); + showSystemRoleBtn.setSelection(showSystemRoles); + showSystemRoleBtn.addSelectionListener(new SelectionAdapter() { private static final long serialVersionUID = -7033424592697691676L; diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/providers/UserFilter.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/providers/UserFilter.java index b89c58d59..46bce8d76 100644 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/providers/UserFilter.java +++ b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/providers/UserFilter.java @@ -9,16 +9,18 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.osgi.service.useradmin.User; +/** + * Filter user list using JFace mechanism on the client (yet on the server) side + * rather than having the UserAdmin to process the search + */ public class UserFilter extends ViewerFilter { private static final long serialVersionUID = 5082509381672880568L; private String searchString; private boolean showSystemRole = true; - private final String[] knownProps = { LdapAttrs.DN, LdapAttrs.cn.name(), - LdapAttrs.givenName.name(), LdapAttrs.sn.name(), - LdapAttrs.uid.name(), LdapAttrs.description.name(), - LdapAttrs.mail.name() }; + private final String[] knownProps = { LdapAttrs.DN, LdapAttrs.cn.name(), LdapAttrs.givenName.name(), + LdapAttrs.sn.name(), LdapAttrs.uid.name(), LdapAttrs.description.name(), LdapAttrs.mail.name() }; public void setSearchText(String s) { // ensure that the value can be used for matching @@ -35,9 +37,7 @@ public class UserFilter extends ViewerFilter { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { User user = (User) element; - if (!showSystemRole - && user.getName().matches( - ".*(" + NodeConstants.ROLES_BASEDN + ")")) + if (!showSystemRole && user.getName().matches(".*(" + NodeConstants.ROLES_BASEDN + ")")) // UserAdminUtils.getProperty(user, LdifName.dn.name()) // .toLowerCase().endsWith(AuthConstants.ROLES_BASEDN)) return false; @@ -50,8 +50,7 @@ public class UserFilter extends ViewerFilter { for (String key : knownProps) { String currVal = UserAdminUtils.getProperty(user, key); - if (notEmpty(currVal) - && currVal.toLowerCase().matches(searchString)) + if (notEmpty(currVal) && currVal.toLowerCase().matches(searchString)) return true; } return false; -- 2.30.2