X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.e4%2Fsrc%2Forg%2Fargeo%2Fcms%2Fe4%2Fusers%2FGroupsView.java;h=9104a6a611e79548fa6b53fb2179f0cc2f5828e4;hb=b7683883512d924a039a43c2e1102290aa49f64d;hp=2007abf7dffff778c02ff0fd3a1fb580ada4c9b9;hpb=d6390257a328199a2a4a677b33e79b6535175169;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.e4/src/org/argeo/cms/e4/users/GroupsView.java b/org.argeo.cms.e4/src/org/argeo/cms/e4/users/GroupsView.java index 2007abf7d..9104a6a61 100644 --- a/org.argeo.cms.e4/src/org/argeo/cms/e4/users/GroupsView.java +++ b/org.argeo.cms.e4/src/org/argeo/cms/e4/users/GroupsView.java @@ -1,18 +1,3 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ package org.argeo.cms.e4.users; import java.util.ArrayList; @@ -24,7 +9,7 @@ import javax.inject.Inject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.argeo.cms.ArgeoNames; +import org.argeo.api.NodeConstants; import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.e4.users.providers.CommonNameLP; @@ -44,9 +29,12 @@ import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; import org.argeo.naming.LdapAttrs; import org.argeo.naming.LdapObjs; -import org.argeo.node.NodeConstants; import org.eclipse.e4.ui.di.Focus; import org.eclipse.e4.ui.workbench.modeling.EPartService; +import org.eclipse.e4.ui.workbench.modeling.ESelectionService; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.DND; @@ -67,7 +55,7 @@ import org.osgi.service.useradmin.UserAdminEvent; import org.osgi.service.useradmin.UserAdminListener; /** List all groups with filter */ -public class GroupsView implements ArgeoNames { +public class GroupsView { private final static Log log = LogFactory.getLog(GroupsView.class); // public final static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".groupsView"; @@ -84,7 +72,7 @@ public class GroupsView implements ArgeoNames { private UserAdminListener listener; @PostConstruct - public void createPartControl(Composite parent) { + public void createPartControl(Composite parent, ESelectionService selectionService) { parent.setLayout(EclipseUiUtils.noSpaceGridLayout()); // boolean isAdmin = CurrentUser.isInRole(NodeConstants.ROLE_ADMIN); @@ -113,6 +101,14 @@ public class GroupsView implements ArgeoNames { userViewer = groupTableViewerCmp.getTableViewer(); userViewer.addDoubleClickListener(new UserTableDefaultDClickListener(partService)); // getViewSite().setSelectionProvider(userViewer); + userViewer.addSelectionChangedListener(new ISelectionChangedListener() { + + @Override + public void selectionChanged(SelectionChangedEvent event) { + IStructuredSelection selection = (IStructuredSelection) event.getSelection(); + selectionService.setSelection(selection.toList()); + } + }); // Really? groupTableViewerCmp.refresh(); @@ -198,6 +194,10 @@ public class GroupsView implements ArgeoNames { if (tmpBuilder.length() > 1) { builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=") .append(LdapObjs.groupOfNames.name()).append(")"); + // hide tokens + builder.append("(!(").append(LdapAttrs.DN).append("=*").append(NodeConstants.TOKENS_BASEDN) + .append("))"); + if (!showSystemRoles) builder.append("(!(").append(LdapAttrs.DN).append("=*").append(NodeConstants.ROLES_BASEDN) .append("))"); @@ -208,10 +208,12 @@ public class GroupsView implements ArgeoNames { if (!showSystemRoles) builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=") .append(LdapObjs.groupOfNames.name()).append(")(!(").append(LdapAttrs.DN).append("=*") - .append(NodeConstants.ROLES_BASEDN).append(")))"); + .append(NodeConstants.ROLES_BASEDN).append("))(!(").append(LdapAttrs.DN).append("=*") + .append(NodeConstants.TOKENS_BASEDN).append(")))"); else - builder.append("(").append(LdapAttrs.objectClass.name()).append("=") - .append(LdapObjs.groupOfNames.name()).append(")"); + builder.append("(&(").append(LdapAttrs.objectClass.name()).append("=") + .append(LdapObjs.groupOfNames.name()).append(")(!(").append(LdapAttrs.DN).append("=*") + .append(NodeConstants.TOKENS_BASEDN).append(")))"); } roles = userAdminWrapper.getUserAdmin().getRoles(builder.toString());