X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Feditors%2FUserEditor.java;h=761f48b80f0d4292f3858f85fe1cffaad6245090;hb=1b8ad59bf691c15ed1317378a83c71c56c81cad2;hp=a811f86216b0eaf7ab2d77e244f854908eaaed6e;hpb=94c54deff25c97eb8143594c15c2a3dea06c5811;p=lgpl%2Fargeo-commons.git 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 a811f8621..761f48b80 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,7 +15,11 @@ */ 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; import org.argeo.security.ui.admin.internal.UserAdminConstants; import org.eclipse.core.runtime.IProgressMonitor; @@ -23,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; @@ -56,6 +61,21 @@ public class UserEditor extends FormEditor implements UserAdminConstants { // firePartPropertyChanged("icon", "icons/user.gif", "icons/users.gif"); // } setPartName(commonName != null ? commonName : "username"); + setTitleImage(user.getType() == Role.GROUP ? SecurityAdminImages.ICON_GROUP + : 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 */ @@ -63,14 +83,16 @@ public class UserEditor extends FormEditor implements UserAdminConstants { return user; } + void updateEditorTitle(String title) { + setPartName(title); + } + protected void addPages() { try { - if (user.getType() == Role.GROUP) addPage(new GroupMainPage(this, userAdmin)); else - addPage(new UserMainPage(this)); - + addPage(new UserMainPage(this, userAdmin)); } catch (Exception e) { throw new ArgeoException("Cannot add pages", e); }