import org.argeo.cms.ui.workbench.internal.useradmin.UserAdminWrapper;
import org.argeo.cms.util.UserAdminUtils;
import org.argeo.naming.LdapAttrs;
+import org.argeo.node.NodeInstance;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
private Repository repository;
private UserAdminWrapper userAdminWrapper;
private UserAdmin userAdmin;
+ private NodeInstance nodeInstance;
-
// Context
private User user;
private String username;
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());
protected void addPages() {
try {
if (user.getType() == Role.GROUP)
- addPage(new GroupMainPage(this, userAdminWrapper, repository));
+ addPage(new GroupMainPage(this, userAdminWrapper, repository, nodeInstance));
else
addPage(new UserMainPage(this, userAdminWrapper));
} catch (Exception e) {
// 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);
+ }
}
}
public void setUserAdminWrapper(UserAdminWrapper userAdminWrapper) {
this.userAdminWrapper = userAdminWrapper;
}
-
+
public void setRepository(Repository repository) {
this.repository = repository;
}
-
+
+ public void setNodeInstance(NodeInstance nodeInstance) {
+ this.nodeInstance = nodeInstance;
+ }
+
}