Commit f242ef77 authored by Adrian Damian's avatar Adrian Damian
Browse files

Filter out deleted groups from members or admins in getGroup

parent ba4efbce
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -535,8 +535,18 @@ public class LdapGroupDAO<T extends Principal> extends LdapDAO
                        else if (memberDN.isDescendantOf(config.getGroupsDN(),
                                                         false))
                        {
                            ldapGroup.getGroupMembers().add(new Group(
                                memberDN.getRDNString().replace("cn=", "")));
                            try
                            {
                                String memberGroupID = 
                                        memberDN.getRDNString().replace("cn=", "");
                                ldapGroup.getGroupMembers().
                                    add(getGroup(memberGroupID));
                            }
                            catch(GroupNotFoundException e)
                            {
                                // ignore as we are not cleaning up
                                // deleted groups from the group members
                            }
                        }
                        else
                        {
+16 −0
Original line number Diff line number Diff line
@@ -266,8 +266,24 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest
                    actualGroup = getGroupDAO().getGroup(expectGroup.getID());
                    assertGroupsEqual(expectGroup, actualGroup);
                    
                    // create another group and make expected group
                    // member of that group. Delete expected group after
                    Group expectGroup2 = new Group(getGroupID(), daoTestUser1);
                    expectGroup2.getGroupAdmins().add(expectGroup);
                    expectGroup2.getGroupMembers().add(expectGroup);
                    Group actualGroup2 = getGroupDAO().addGroup(expectGroup2);
                    log.debug("addGroup: " + expectGroup2.getID());
                    assertGroupsEqual(expectGroup2, actualGroup2);
                    
                    // delete the group
                    getGroupDAO().deleteGroup(expectGroup.getID());
                    // now expectGroup should not be member of admin of 
                    // expectGroup2
                    expectGroup2.getGroupAdmins().remove(expectGroup);
                    expectGroup2.getGroupMembers().remove(expectGroup);
                    actualGroup2 = getGroupDAO().getGroup(expectGroup2.getID());
                    log.debug("addGroup: " + expectGroup2.getID());
                    assertGroupsEqual(expectGroup2, actualGroup2);
                    
                    return null;
                }