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<User> getFlatGroups(User aUser) {
Authorization currAuth;
List<User> groups = new ArrayList<User>();
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;
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());
// 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);
+ }
}
}