Test if Group before User
authorBruno Sinou <bsinou@argeo.org>
Sat, 7 Nov 2015 16:39:59 +0000 (16:39 +0000)
committerBruno Sinou <bsinou@argeo.org>
Sat, 7 Nov 2015 16:39:59 +0000 (16:39 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8562 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java

index 1e6cd4f10564f0cb61fc1bba72b5fcf39967cc9c..b6b7d6ecd5640c5bb532b802d723a0f89b4e15d0 100644 (file)
@@ -388,16 +388,8 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                        String newUserName = (String) event.data;
                        UserAdmin myUserAdmin = userAdminWrapper.getUserAdmin();
                        Role role = myUserAdmin.getRole(newUserName);
-                       if (role.getType() == Role.USER) {
-                               // TODO check if the group is already member of this group
-                               userAdminWrapper.beginTransactionIfNeeded();
-                               User user = (User) role;
-                               myGroup.addMember(user);
-                               userAdminWrapper.notifyListeners(new UserAdminEvent(null,
-                                               UserAdminEvent.ROLE_CHANGED, myGroup));
-                       } else if (role.getType() == Role.GROUP) {
+                       if (role.getType() == Role.GROUP) {
                                Group newGroup = (Group) role;
-
                                Shell shell = getViewer().getControl().getShell();
                                // Sanity checks
                                if (myGroup == newGroup) { // Equality
@@ -424,12 +416,18 @@ public class GroupMainPage extends FormPage implements ArgeoNames {
                                                                        + ", this membership already exists");
                                        return;
                                }
-
                                userAdminWrapper.beginTransactionIfNeeded();
                                // TODO implement the dirty state
                                myGroup.addMember(newGroup);
                                userAdminWrapper.notifyListeners(new UserAdminEvent(null,
                                                UserAdminEvent.ROLE_CHANGED, myGroup));
+                       } else if (role.getType() == Role.USER) {
+                               // TODO check if the group is already member of this group
+                               userAdminWrapper.beginTransactionIfNeeded();
+                               User user = (User) role;
+                               myGroup.addMember(user);
+                               userAdminWrapper.notifyListeners(new UserAdminEvent(null,
+                                               UserAdminEvent.ROLE_CHANGED, myGroup));
                        }
                        super.drop(event);
                }