X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fparts%2FUserEditor.java;h=715d343105f302c580b0d6e26f98176775aaf85a;hb=f782539a48e6d4779767c5a511c25df1b9078667;hp=71eba27f646ba1b6bc0ccc0fa21593340cdbfea6;hpb=2aa71ada5453ae3573593b67d953e57ee37c6020;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java index 71eba27f6..715d34310 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java @@ -19,38 +19,35 @@ import java.util.ArrayList; import java.util.List; import org.argeo.ArgeoException; +import org.argeo.cms.util.useradmin.UserAdminUtils; +import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminPlugin; -import org.argeo.security.ui.admin.internal.UiAdminUtils; -import org.argeo.security.ui.admin.internal.UserAdminConstants; +import org.argeo.security.ui.admin.internal.UiUserAdminListener; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.AbstractFormPart; import org.eclipse.ui.forms.editor.FormEditor; -import org.eclipse.ui.forms.widgets.FormToolkit; import org.osgi.service.useradmin.Authorization; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; import org.osgi.service.useradmin.UserAdminEvent; -import org.osgi.service.useradmin.UserAdminListener; /** Editor for a user, might be a user or a group. */ -public class UserEditor extends FormEditor implements UserAdminConstants { +public class UserEditor extends FormEditor { private static final long serialVersionUID = 8357851520380820241L; - public final static String ID = SecurityAdminPlugin.PLUGIN_ID + public final static String USER_EDITOR_ID = SecurityAdminPlugin.PLUGIN_ID + ".userEditor"; + public final static String GROUP_EDITOR_ID = SecurityAdminPlugin.PLUGIN_ID + + ".groupEditor"; /* DEPENDENCY INJECTION */ private UserAdminWrapper userAdminWrapper; @@ -68,19 +65,13 @@ public class UserEditor extends FormEditor implements UserAdminConstants { username = ((UserEditorInput) getEditorInput()).getUsername(); user = (User) userAdmin.getRole(username); - listener = new NameChangeListener(user); + listener = new NameChangeListener(site.getShell().getDisplay(), user); userAdminWrapper.addListener(listener); - - // TODO: following has been disabled because it causes NPE after a - // login/logout on RAP - // Image titleIcon = user.getType() == Role.GROUP ? - // SecurityAdminImages.ICON_GROUP - // : SecurityAdminImages.ICON_USER; - // setTitleImage(titleIcon); + updateEditorTitle(null); } /** - * returns the list of all authorisation for the given user or of the + * 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) { @@ -108,8 +99,9 @@ public class UserEditor extends FormEditor implements UserAdminConstants { void updateEditorTitle(String title) { if (title == null) { - String commonName = UiAdminUtils.getProperty(user, KEY_CN); - title = "".equals(commonName) ? commonName : user.getName(); + String commonName = UserAdminUtils.getProperty(user, + LdifName.cn.name()); + title = "".equals(commonName) ? user.getName() : commonName; } setPartName(title); } @@ -125,15 +117,6 @@ public class UserEditor extends FormEditor implements UserAdminConstants { } } - /** - * Updates the property in the working copy. The transaction must be - * explicitly committed to persist the update. - */ - @SuppressWarnings("unchecked") - protected void setProperty(String key, String value) { - user.getProperties().put(key, value); - } - @Override public void doSave(IProgressMonitor monitor) { userAdminWrapper.beginTransactionIfNeeded(); @@ -160,46 +143,49 @@ public class UserEditor extends FormEditor implements UserAdminConstants { // CONTROLERS FOR THIS EDITOR AND ITS PAGES - class NameChangeListener implements UserAdminListener { + private class NameChangeListener extends UiUserAdminListener { private final User user; - public NameChangeListener(User user) { + public NameChangeListener(Display display, User user) { + super(display); this.user = user; } @Override - public void roleChanged(UserAdminEvent event) { + public void roleChangedToUiThread(UserAdminEvent event) { Role changedRole = event.getRole(); if (changedRole == null || changedRole.equals(user)) updateEditorTitle(null); } } - class MainInfoListener implements UserAdminListener { + class MainInfoListener extends UiUserAdminListener { private final AbstractFormPart part; - public MainInfoListener(AbstractFormPart part) { + public MainInfoListener(Display display, AbstractFormPart part) { + super(display); this.part = part; } @Override - public void roleChanged(UserAdminEvent event) { + public void roleChangedToUiThread(UserAdminEvent event) { // Rollback if (event.getRole() == null) part.markStale(); } } - class GroupChangeListener implements UserAdminListener { + class GroupChangeListener extends UiUserAdminListener { private final AbstractFormPart part; - public GroupChangeListener(AbstractFormPart part) { + public GroupChangeListener(Display display, AbstractFormPart part) { + super(display); this.part = part; } @Override - public void roleChanged(UserAdminEvent event) { + public void roleChangedToUiThread(UserAdminEvent event) { // always mark as stale part.markStale(); }