X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fworkbench%2Finternal%2Fuseradmin%2Fparts%2FUserEditor.java;h=a1e5c627f4a7a107a627bc0c481f78fd42c4b979;hb=5b444174cd13680f99944026877f6cac2e1faba1;hp=be1ce47cafad3dfec5a520f972ba0f28b7c83e1a;hpb=41c907953b7529e20461e09928916e047d4198e8;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/UserEditor.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/UserEditor.java index be1ce47ca..a1e5c627f 100644 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/UserEditor.java +++ b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/parts/UserEditor.java @@ -68,14 +68,14 @@ public class UserEditor extends FormEditor { username = ((UserEditorInput) getEditorInput()).getUsername(); user = (User) userAdmin.getRole(username); - listener = new NameChangeListener(site.getShell().getDisplay(), user); + listener = new NameChangeListener(site.getShell().getDisplay()); userAdminWrapper.addListener(listener); updateEditorTitle(null); } /** - * returns the list of all authorization for the given user or of the - * current displayed user if parameter is null + * returns the list of all authorization for the given user or of the current + * displayed user if parameter is null */ protected List getFlatGroups(User aUser) { Authorization currAuth; @@ -89,7 +89,7 @@ public class UserEditor extends FormEditor { List groups = new ArrayList(); for (String roleStr : roles) { User currRole = (User) userAdmin.getRole(roleStr); - if (!groups.contains(currRole)) + if (currRole != null && !groups.contains(currRole)) groups.add(currRole); } return groups; @@ -100,6 +100,10 @@ public class UserEditor extends FormEditor { return user; } + private void setDisplayedUser(User user) { + this.user = user; + } + void updateEditorTitle(String title) { if (title == null) { String commonName = UserAdminUtils.getProperty(user, LdapAttrs.cn.name()); @@ -146,19 +150,18 @@ public class UserEditor extends FormEditor { // CONTROLERS FOR THIS EDITOR AND ITS PAGES private class NameChangeListener extends UiUserAdminListener { - - private final User user; - - public NameChangeListener(Display display, User user) { + public NameChangeListener(Display display) { super(display); - this.user = user; } @Override public void roleChangedToUiThread(UserAdminEvent event) { Role changedRole = event.getRole(); - if (changedRole == null || changedRole.equals(user)) + if (changedRole == null || changedRole.equals(user)) { updateEditorTitle(null); + User reloadedUser = (User) userAdminWrapper.getUserAdmin().getRole(user.getName()); + setDisplayedUser(reloadedUser); + } } }