Improve and simplify OSGi Boot
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / internal / parts / UserMainPage.java
index 833ae32a78513013b730c4b20ac070b63487a954..db6eb538fe059635393edfa3781e20bb4055c917 100644 (file)
@@ -19,7 +19,7 @@ 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;
@@ -228,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("");
@@ -236,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");
                                        }
                                }
                        }
@@ -416,25 +416,17 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                        @SuppressWarnings("unchecked")
                        Iterator<Group> it = ((IStructuredSelection) selection).iterator();
                        List<Group> groups = new ArrayList<Group>();
-                       // StringBuilder builder = new StringBuilder();
                        while (it.hasNext()) {
                                Group currGroup = it.next();
-                               // String groupName = UserAdminUtils.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));
                        }
@@ -475,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));
                        }