plug the role list
authorBruno Sinou <bsinou@argeo.org>
Fri, 11 Sep 2015 08:32:59 +0000 (08:32 +0000)
committerBruno Sinou <bsinou@argeo.org>
Fri, 11 Sep 2015 08:32:59 +0000 (08:32 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8383 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserEditor.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/editors/UserMainPage.java

index f2f233fe4f3a3f9a5613bb6d0c0e15dd595d8f78..a5879b9f95540bd8ab153a5dc6758706c4e8f5de 100644 (file)
@@ -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<User> getFlatGroups() {
+               Authorization currAuth = userAdmin.getAuthorization(user);
+               String[] roles = currAuth.getRoles();
+
+               List<User> groups = new ArrayList<User>();
+               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;
index d4ca071270fc8db97c7e5d89939a182e96e343dc..df8e505af04b6fd382ef6115167168e739e72abc 100644 (file)
@@ -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<ColumnDefinition> columnDefs = new ArrayList<ColumnDefinition>();
                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<User> listFilteredElements(String filter) {
-                       List<User> users = new ArrayList<User>();
-
-                       // "member of" method?
-                       // Group group = (Group) editor.getDisplayedUser();
-                       // Role[] roles = group.getMembers();
-                       // List<User> users = new ArrayList<User>();
-                       // for (Role role : roles)
-                       // // if (role.getType() == Role.GROUP)
-                       // users.add((User) role);
-                       // return users;
-                       return users;
+                       return (List<User>) 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;