From 863c2382c277f82f0bba67b8d73ea61ce1eda1f3 Mon Sep 17 00:00:00 2001 From: Bruno Sinou Date: Fri, 11 Sep 2015 08:32:59 +0000 Subject: [PATCH] plug the role list git-svn-id: https://svn.argeo.org/commons/trunk@8383 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../security/ui/admin/editors/UserEditor.java | 17 +++++++++++++++++ .../ui/admin/editors/UserMainPage.java | 18 ++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserEditor.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserEditor.java index f2f233fe4..a5879b9f9 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserEditor.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserEditor.java @@ -15,6 +15,9 @@ */ package org.argeo.security.ui.admin.editors; +import java.util.ArrayList; +import java.util.List; + import org.argeo.ArgeoException; import org.argeo.security.ui.admin.SecurityAdminImages; import org.argeo.security.ui.admin.SecurityAdminPlugin; @@ -24,6 +27,7 @@ import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.editor.FormEditor; +import org.osgi.service.useradmin.Authorization; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; @@ -61,6 +65,19 @@ public class UserEditor extends FormEditor implements UserAdminConstants { : SecurityAdminImages.ICON_USER); } + protected List getFlatGroups() { + Authorization currAuth = userAdmin.getAuthorization(user); + String[] roles = currAuth.getRoles(); + + List groups = new ArrayList(); + for (String roleStr : roles) { + User currRole = (User) userAdmin.getRole(roleStr); + if (!groups.contains(currRole)) + groups.add(currRole); + } + return groups; + } + /** Exposes the user (or group) that is displayed by the current editor */ protected User getDisplayedUser() { return user; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserMainPage.java index d4ca07127..df8e505af 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserMainPage.java @@ -210,14 +210,14 @@ public class UserMainPage extends FormPage implements ArgeoNames { public void appendMemberOfPart(Composite parent) { FormToolkit tk = getManagedForm().getToolkit(); - Composite body = addSection(tk, parent, "Groups"); + Composite body = addSection(tk, parent, "Roles"); body.setLayout(EclipseUiUtils.noSpaceGridLayout()); // Define the displayed columns List columnDefs = new ArrayList(); columnDefs.add(new ColumnDefinition(new RoleIconLP(), "", 0, 24)); columnDefs.add(new ColumnDefinition(new UserNameLP(), - "Distinguished Name", 240)); + "Distinguished Name", 300)); columnDefs.add(new ColumnDefinition(new CommonNameLP(), "Common Name", 150)); @@ -248,17 +248,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { @Override protected List listFilteredElements(String filter) { - List users = new ArrayList(); - - // "member of" method? - // Group group = (Group) editor.getDisplayedUser(); - // Role[] roles = group.getMembers(); - // List users = new ArrayList(); - // for (Role role : roles) - // // if (role.getType() == Role.GROUP) - // users.add((User) role); - // return users; - return users; + return (List) editor.getFlatGroups(); } } @@ -303,7 +293,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); return text; } - + private class FormPartML implements ModifyListener { private static final long serialVersionUID = 6299808129505381333L; private AbstractFormPart formPart; -- 2.39.2