@Override protected void testMembership(@NotNull Group g, @NotNull User member) throws Exception { member.declaredMemberOf(); } }
private List<String> getGroups(User user) throws RepositoryException { List<String> groups = new ArrayList<>(); Iterator<Group> groupIterator = user.declaredMemberOf(); while (groupIterator.hasNext()) { Group group = groupIterator.next(); groups.add(group.getID()); } return groups; } }
private List<String> getGroups(User user) throws RepositoryException { List<String> groups = new ArrayList<>(); Iterator<Group> groupIterator = user.declaredMemberOf(); while (groupIterator.hasNext()) { Group group = groupIterator.next(); groups.add(group.getID()); } return groups; } }
@Test public void testOnRemoveUserNoMembership() throws Exception { when(user.declaredMemberOf()).thenReturn(Collections.emptyIterator()); action.onRemove(user, root, NamePathMapper.DEFAULT); }
@Test public void testOnRemoveUserWithMembership() throws Exception { when(user.declaredMemberOf()).thenReturn(Iterators.singletonIterator(gr)); action.onRemove(user, root, NamePathMapper.DEFAULT); assertTrue(gr.removed.contains(user)); }
@Test public void testManyMemberships() throws Exception { Set<String> memberships = new HashSet<String>(); User usr = createUser(); for (int i = 0; i < MANY_USERS; i++) { Group grp = createGroup(); grp.addMember(usr); memberships.add(grp.getID()); } root.commit(); Iterator<Group> iter = usr.declaredMemberOf(); while (iter.hasNext()) { Group group = iter.next(); Assert.assertTrue(memberships.remove(group.getID())); } assertEquals(0, memberships.size()); }
@Test public void testDeclaredMembership() throws RepositoryException, CommitFailedException { group.addMember(group2); group2.addMember(group3); group3.addMember(user); root.commit(); Set<Group> expectedGroups = null; // EXERCISE Iterator<Group> groups = user.declaredMemberOf(); while (groups.hasNext()) { assertTrue(expectedGroups.remove(groups.next())); } assertTrue(expectedGroups.isEmpty()); Set<Authorizable> expectedMembers = null; // EXERCISE Iterator<Authorizable> memberIterator = group.getDeclaredMembers(); while (memberIterator.hasNext()) { assertTrue(expectedMembers.remove(memberIterator.next())); } assertTrue(expectedMembers.isEmpty()); }
@Test public void verifyMemberOf() throws Exception { JackrabbitSession session = createAdminSession(); try { UserManager userMgr = session.getUserManager(); for (int i = 0; i < getNumUsers(); i++) { User user = (User) userMgr.getAuthorizable(TEST_USER_PREFIX + i); assertNotNull(user); Set<String> groups = new HashSet<String>(); for (int j = 0; j < getNumGroups(); j++) { groups.add(TEST_GROUP_PREFIX + j); } Iterator<Group> groupIterator = user.declaredMemberOf(); while (groupIterator.hasNext()) { Group grp = groupIterator.next(); assertTrue("user must be member of group " + grp.getID(), groups.remove(grp.getID())); } assertEquals("user " + user.getID() + " must be member of all groups", 0, groups.size()); } } finally { session.logout(); } }
@Test public void testDeclaredMemberOf() throws Exception { User u = mgr.createUser("u", "u"); Group g = mgr.createGroup("g"); assertTrue(g.addMember(u)); Iterator<Group> groups = u.declaredMemberOf(); assertTrue(groups.hasNext()); Group gAgain = groups.next(); assertTrue(gAgain instanceof GroupImpl); assertTrue(gAgain.removeMember(u)); assertFalse(root.hasPendingChanges()); assertFalse(u.declaredMemberOf().hasNext()); }
Iterator<Group> it = auth.declaredMemberOf(); while (it.hasNext() && !isMember) { isMember = groupId.equals(it.next().getID()); Iterator<Group> it = auth.declaredMemberOf(); while (it.hasNext()) { assertFalse(groupId.equals(it.next().getID()));
@Test public void testRemoveMembership() throws RepositoryException { String grId2 = createGroupId(); Group gr2 = null; try { gr2 = userMgr.createGroup(grId2); gr2.addMember(user); superuser.save(); Iterator<Group> groups = user.declaredMemberOf(); while (groups.hasNext()) { Group group = groups.next(); group.removeMember(user); superuser.save(); } assertFalse(userMgr.getAuthorizable(group.getID(), Group.class).isDeclaredMember(user)); assertFalse(userMgr.getAuthorizable(grId2, Group.class).isDeclaredMember(user)); groups = user.declaredMemberOf(); while (groups.hasNext()) { String id = groups.next().getID(); assertFalse(group.getID().equals(id)); assertFalse(grId2.equals(id)); } } finally { if (gr2 != null) { gr2.remove(); superuser.save(); } } }
Iterator<Group> it = auth.declaredMemberOf(); while (it.hasNext() && !isMember) { isMember = groupId.equals(it.next().getID()); Iterator<Group> it = auth.declaredMemberOf(); while (it.hasNext()) { assertFalse(groupId.equals(it.next().getID()));
@Test public void testMemberOf() throws Exception { User u = mgr.createUser("u", "u"); Group g = mgr.createGroup("g"); assertTrue(g.addMember(u)); Iterator<Group> groups = u.memberOf(); assertTrue(groups.hasNext()); Group gAgain = groups.next(); assertTrue(gAgain instanceof GroupImpl); assertTrue(gAgain.removeMember(u)); assertFalse(root.hasPendingChanges()); assertFalse(u.declaredMemberOf().hasNext()); }
Iterator<Group> grp = u.declaredMemberOf(); assertTrue("User need to be member of group", grp.hasNext()); Group result = grp.next();
@Test public void testAddMemberModifiesMemberOf() throws NotExecutableException, RepositoryException { User auth = getTestUser(superuser); Group newGroup = null; try { newGroup = userMgr.createGroup(createGroupId()); superuser.save(); assertFalseMemberOfContainsGroup(auth.memberOf(), newGroup); assertTrue(newGroup.addMember(auth)); superuser.save(); assertTrueMemberOfContainsGroup(auth.declaredMemberOf(), newGroup); assertTrueMemberOfContainsGroup(auth.memberOf(), newGroup); } finally { if (newGroup != null) { newGroup.removeMember(auth); newGroup.remove(); superuser.save(); } } }
@Test public void testAddToGroup() throws Exception { User user = createUser(null); Group g = null; try { g = userMgr.createGroup("testGroup"); g.addMember(user); root.commit(); assertTrue(g.isMember(user)); assertTrue(g.isDeclaredMember(user)); boolean isMemberOfG = false; Iterator<Group> groups = user.declaredMemberOf(); while (groups.hasNext() && !isMemberOfG) { if (g.getID().equals(groups.next().getID())) { isMemberOfG = true; } } assertTrue(isMemberOfG); } finally { if (g != null) { g.remove(); root.commit(); } } }
assertFalseMemberOfContainsGroup(user.declaredMemberOf(), newGroup);
/** * @see <a href="https://issues.apache.org/jira/browse/OAK-4397">OAK-4397</a> */ @Test public void testMembershipForExistingForeignGroup() throws Exception { syncConfig.user().setMembershipNestingDepth(1).setMembershipExpirationTime(-1).setExpirationTime(-1); syncConfig.group().setExpirationTime(-1); ExternalUser externalUser = idp.getUser(USER_ID); ExternalIdentityRef groupRef = externalUser.getDeclaredGroups().iterator().next(); // create the group as if it had been synced by a foreign IDP Group gr = userManager.createGroup(groupRef.getId()); setExternalID(gr, "foreignIDP"); // but don't set rep:lastSynced :-) root.commit(); SyncResult result = syncCtx.sync(externalUser); assertSame(SyncResult.Status.ADD, result.getStatus()); User user = userManager.getAuthorizable(externalUser.getId(), User.class); assertNotNull(user); // synchronizing the user from our IDP must _neither_ change the group // members of the group belonging to a different IDP nor synchronizing // that foreign group with information retrieved from this IDP (e.g. // properties and as such must _not_ set the last-synced property. // -> verify group last-synced has not been added assertFalse(gr.hasProperty(DefaultSyncContext.REP_LAST_SYNCED)); // -> verify group membership has not changed assertFalse(gr.isDeclaredMember(user)); Iterator<Group> declared = user.declaredMemberOf(); while (declared.hasNext()) { assertFalse(gr.getID().equals(declared.next().getID())); } }
public void testAddMemberModifiesMemberOf() throws NotExecutableException, RepositoryException { User auth = getTestUser(superuser); Group newGroup = null; try { newGroup = userMgr.createGroup(getTestPrincipal()); save(superuser); assertFalseMemberOfContainsGroup(auth.memberOf(), newGroup); assertTrue(newGroup.addMember(auth)); save(superuser); assertTrueMemberOfContainsGroup(auth.declaredMemberOf(), newGroup); assertTrueMemberOfContainsGroup(auth.memberOf(), newGroup); } finally { if (newGroup != null) { newGroup.removeMember(auth); newGroup.remove(); save(superuser); } } }
assertFalseMemberOfContainsGroup(auth.declaredMemberOf(), newGroup);