X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fparts%2FUserMainPage.java;h=db6eb538fe059635393edfa3781e20bb4055c917;hb=8260f4470f514ea347ca53f5b4dfc632c4a4de66;hp=9ea1dcffcb9ed2496f1a1d4248564f84b7a22167;hpb=f0be5ec381492eff23d4576ee4122734af4ad877;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java index 9ea1dcffc..db6eb538f 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java @@ -19,15 +19,15 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.argeo.ArgeoException; +import org.argeo.cms.CmsException; import org.argeo.cms.auth.AuthConstants; +import org.argeo.cms.util.useradmin.UserAdminUtils; import org.argeo.eclipse.ui.ColumnDefinition; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.parts.LdifUsersTable; import org.argeo.jcr.ArgeoNames; import org.argeo.osgi.useradmin.LdifName; import org.argeo.security.ui.admin.SecurityAdminImages; -import org.argeo.security.ui.admin.internal.UiAdminUtils; import org.argeo.security.ui.admin.internal.UserAdminWrapper; import org.argeo.security.ui.admin.internal.parts.UserEditor.GroupChangeListener; import org.argeo.security.ui.admin.internal.parts.UserEditor.MainInfoListener; @@ -105,13 +105,13 @@ public class UserMainPage extends FormPage implements ArgeoNames { appendOverviewPart(body, user); // Remove to ability to force the password for his own user. The user // must then use the change pwd feature - if (!UiAdminUtils.isCurrentUser(user)) + if (!UserAdminUtils.isCurrentUser(user)) appendPasswordPart(body, user); appendMemberOfPart(body, user); } /** Creates the general section */ - private void appendOverviewPart(Composite parent, final User user) { + private void appendOverviewPart(final Composite parent, final User user) { FormToolkit tk = getManagedForm().getToolkit(); Section section = addSection(tk, parent, "Main information"); @@ -119,21 +119,21 @@ public class UserMainPage extends FormPage implements ArgeoNames { body.setLayout(new GridLayout(2, false)); final Text distinguishedName = createLT(tk, body, "User Name", - UiAdminUtils.getProperty(user, LdifName.uid.name())); + UserAdminUtils.getProperty(user, LdifName.uid.name())); distinguishedName.setEnabled(false); final Text commonName = createLT(tk, body, "Common Name", - UiAdminUtils.getProperty(user, LdifName.cn.name())); + UserAdminUtils.getProperty(user, LdifName.cn.name())); commonName.setEnabled(false); final Text firstName = createLT(tk, body, "First name", - UiAdminUtils.getProperty(user, LdifName.givenname.name())); + UserAdminUtils.getProperty(user, LdifName.givenName.name())); final Text lastName = createLT(tk, body, "Last name", - UiAdminUtils.getProperty(user, LdifName.sn.name())); + UserAdminUtils.getProperty(user, LdifName.sn.name())); final Text email = createLT(tk, body, "Email", - UiAdminUtils.getProperty(user, LdifName.mail.name())); + UserAdminUtils.getProperty(user, LdifName.mail.name())); // create form part (controller) AbstractFormPart part = new SectionPart((Section) body.getParent()) { @@ -142,7 +142,8 @@ public class UserMainPage extends FormPage implements ArgeoNames { @Override public void initialize(IManagedForm form) { super.initialize(form); - listener = editor.new MainInfoListener(this); + listener = editor.new MainInfoListener(parent.getDisplay(), + this); userAdminWrapper.addListener(listener); } @@ -155,7 +156,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { @SuppressWarnings("unchecked") public void commit(boolean onSave) { // TODO Sanity checks (mail validity...) - user.getProperties().put(LdifName.givenname.name(), + user.getProperties().put(LdifName.givenName.name(), firstName.getText()); user.getProperties() .put(LdifName.sn.name(), lastName.getText()); @@ -167,15 +168,16 @@ public class UserMainPage extends FormPage implements ArgeoNames { @Override public void refresh() { - distinguishedName.setText(UiAdminUtils.getProperty(user, + distinguishedName.setText(UserAdminUtils.getProperty(user, LdifName.uid.name())); - commonName.setText(UiAdminUtils.getProperty(user, + commonName.setText(UserAdminUtils.getProperty(user, LdifName.cn.name())); - firstName.setText(UiAdminUtils.getProperty(user, - LdifName.givenname.name())); - lastName.setText(UiAdminUtils.getProperty(user, + firstName.setText(UserAdminUtils.getProperty(user, + LdifName.givenName.name())); + lastName.setText(UserAdminUtils.getProperty(user, LdifName.sn.name())); - email.setText(LdifName.mail.name()); + email.setText(UserAdminUtils.getProperty(user, + LdifName.mail.name())); refreshFormTitle(user); super.refresh(); } @@ -226,7 +228,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { || !password2.getText().equals("")) { if (password1.getText().equals(password2.getText())) { char[] newPassword = password1.getText().toCharArray(); - userAdminWrapper.beginTransactionIfNeeded(); + // userAdminWrapper.beginTransactionIfNeeded(); user.getCredentials().put(null, newPassword); password1.setText(""); password2.setText(""); @@ -234,7 +236,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { } else { password1.setText(""); password2.setText(""); - throw new ArgeoException("Passwords are not equals"); + throw new CmsException("Passwords are not equals"); } } } @@ -245,13 +247,13 @@ public class UserMainPage extends FormPage implements ArgeoNames { getManagedForm().addPart(part); } - private LdifUsersTable appendMemberOfPart(Composite parent, User user) { + private LdifUsersTable appendMemberOfPart(final Composite parent, User user) { FormToolkit tk = getManagedForm().getToolkit(); Section section = addSection(tk, parent, "Roles"); Composite body = (Composite) section.getClient(); body.setLayout(EclipseUiUtils.noSpaceGridLayout()); - boolean isAdmin = UiAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN); + boolean isAdmin = UserAdminUtils.isUserInRole(AuthConstants.ROLE_ADMIN); // Displayed columns List columnDefs = new ArrayList(); @@ -294,7 +296,8 @@ public class UserMainPage extends FormPage implements ArgeoNames { @Override public void initialize(IManagedForm form) { super.initialize(form); - listener = editor.new GroupChangeListener(this); + listener = editor.new GroupChangeListener(parent.getDisplay(), + this); userAdminWrapper.addListener(listener); } @@ -382,7 +385,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { } }); - String tooltip = "Remove " + UiAdminUtils.getUsername(user) + String tooltip = "Remove " + UserAdminUtils.getUsername(user) + " from the below selected groups"; Action action = new RemoveMembershipAction(userViewer, user, tooltip, SecurityAdminImages.ICON_REMOVE_DESC); @@ -413,25 +416,17 @@ public class UserMainPage extends FormPage implements ArgeoNames { @SuppressWarnings("unchecked") Iterator it = ((IStructuredSelection) selection).iterator(); List groups = new ArrayList(); - // StringBuilder builder = new StringBuilder(); while (it.hasNext()) { Group currGroup = it.next(); - // String groupName = UiAdminUtils.getUsername(currGroup); - // builder.append(groupName).append("; "); groups.add(currGroup); } - // if (!MessageDialog.openQuestion( - // HandlerUtil.getActiveShell(event), - // "Re", - // "Are you sure that you want to delete these users?\n" - // + builder.substring(0, builder.length() - 2))) - // return null; - userAdminWrapper.beginTransactionIfNeeded(); for (Group group : groups) { group.removeMember(user); - // sectionPart.refresh(); + } + userAdminWrapper.commitOrNotifyTransactionStateChange(); + for (Group group : groups) { userAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CHANGED, group)); } @@ -472,9 +467,11 @@ public class UserMainPage extends FormPage implements ArgeoNames { // TODO this check should be done before. if (role.getType() == Role.GROUP) { // TODO check if the user is already member of this group + myUserAdminWrapper.beginTransactionIfNeeded(); Group group = (Group) role; group.addMember(myUser); + userAdminWrapper.commitOrNotifyTransactionStateChange(); myUserAdminWrapper.notifyListeners(new UserAdminEvent(null, UserAdminEvent.ROLE_CHANGED, group)); } @@ -491,7 +488,7 @@ public class UserMainPage extends FormPage implements ArgeoNames { // LOCAL HELPERS private void refreshFormTitle(User group) { getManagedForm().getForm().setText( - UiAdminUtils.getProperty(group, LdifName.cn.name())); + UserAdminUtils.getProperty(group, LdifName.cn.name())); } /** Appends a section with a title */