@Override protected void testMembership(@NotNull Group g, @NotNull User member) throws Exception { member.memberOf(); } }
/** * Get the list of names of groups for which this user has a membership. * * @param user * @return */ public static List<String> getUserGroupMembershipNames(User user) throws RepositoryException { List<String> groupNames = new ArrayList<String>(); Iterator<Group> groupIterator = user.memberOf(); while (groupIterator.hasNext()) { groupNames.add(groupIterator.next().getID()); } return groupNames; } }
/** * Get the list of names of groups for which this user has a membership. * * @param user * @return */ public static List<String> getUserGroupMembershipNames(User user) throws RepositoryException { List<String> groupNames = new ArrayList<String>(); Iterator<Group> groupIterator = user.memberOf(); while (groupIterator.hasNext()) { groupNames.add(groupIterator.next().getID()); } return groupNames; } }
public static void removeUser(Context context, User user) throws RepositoryException { Iterator<Group> groups = user.memberOf(); while (groups.hasNext()) { groups.next().removeMember(user); } context.getAuthorizables().remove(user.getID()); user.remove(); }
public static void removeUser(Context context, User user) throws RepositoryException { Iterator<Group> groups = user.memberOf(); while (groups.hasNext()) { groups.next().removeMember(user); } context.getAuthorizables().remove(user.getID()); user.remove(); }
@Override @SuppressWarnings("squid:S1141") public boolean isAllowed(User user) { try { return user.isAdmin() || StreamSupport.stream(Spliterators.spliteratorUnknownSize(user.memberOf(), Spliterator.ORDERED), false) .anyMatch(g -> { try { for (String group : getAuthorizedGroups()) { if (g.getID().equals(group)) { return true; } } return false; } catch (RepositoryException ex) { return false; } }); } catch (RepositoryException e) { return false; } }
public List<IPentahoRole> getUserRoles( Session session, final ITenant theTenant, final String userName ) throws RepositoryException { ArrayList<IPentahoRole> roles = new ArrayList<IPentahoRole>(); User jackrabbitUser = getJackrabbitUser( theTenant, userName, session ); if ( ( jackrabbitUser != null ) && TenantUtils.isAccessibleTenant( theTenant == null ? tenantedUserNameUtils.getTenant( jackrabbitUser.getID() ) : theTenant ) ) { Iterator<Group> groups = jackrabbitUser.memberOf(); while ( groups.hasNext() ) { IPentahoRole role = convertToPentahoRole( groups.next() ); // Exclude the extra role from the list of roles to be returned back if ( !extraRoles.contains( role.getName() ) ) { roles.add( role ); } } } return roles; }
@Test public void testUserMemberOfContainsEveryone() throws Exception { User testUser = getTestUser(superuser); boolean memberOfEveryone = false; Iterator<Group> groups = testUser.memberOf(); while (groups.hasNext() && !memberOfEveryone) { Group g = groups.next(); memberOfEveryone = (EveryonePrincipal.NAME.equals(g.getPrincipal().getName())); } assertTrue(memberOfEveryone); } }
public void run() { try { while (knownUsers.size() < NUM_USERS) { Object idOrUser; int idx; synchronized (knownUsers) { idx = random.nextInt(knownUsers.size()); idOrUser = knownUsers.get(idx); } User user; if (idOrUser instanceof String) { user = (User) userMgr.getAuthorizable((String) idOrUser); synchronized (knownUsers) { knownUsers.set(idx, user); } } else { user = (User) idOrUser; } long time = System.nanoTime(); user.memberOf(); stats.logTime(System.nanoTime() - time); } } catch (RepositoryException e) { exceptions.add(e); } finally { session.logout(); } } }
@Test public void testInheritedMembership() throws RepositoryException, CommitFailedException { group.addMember(group2); group.addMember(group3); group3.addMember(user); root.commit(); Set<Group> groups = null; // EXERCISE Iterator<Group> groupIterator = user.memberOf(); while (groupIterator.hasNext()) { Group gr = groupIterator.next(); assertTrue(groups.remove(gr)); } assertTrue(groups.isEmpty()); Set<Authorizable> expectedMembers = null; // EXERCISE Iterator<Authorizable> memberIterator = group.getMembers(); while (memberIterator.hasNext()) { assertTrue(expectedMembers.remove(memberIterator.next())); } assertTrue(expectedMembers.isEmpty()); }
@Test public void testNestedMemberships() throws Exception { Set<String> memberships = new HashSet<String>(); User user = createUser(); Group grp = createGroup(); memberships.add(grp.getID()); for (int i = 0; i < 10; i++) { Group g1 = createGroup(); grp.addMember(g1); memberships.add(g1.getID()); for (int j = 0; j < 10; j++) { Group g2 = createGroup(); g1.addMember(g2); memberships.add(g2.getID()); g2.addMember(user); } } root.commit(); Iterator<Group> iter = user.memberOf(); while (iter.hasNext()) { Group group = iter.next(); Assert.assertTrue(memberships.remove(group.getID())); } assertEquals(0, memberships.size()); }
public void deleteUser( Session session, final IPentahoUser user ) throws NotFoundException, RepositoryException { if ( canDeleteUser( session, user ) ) { User jackrabbitUser = getJackrabbitUser( user.getTenant(), user.getUsername(), session ); if ( jackrabbitUser != null && TenantUtils.isAccessibleTenant( tenantedUserNameUtils.getTenant( jackrabbitUser.getID() ) ) ) { // [BISERVER-9215] Adding new user with same user name as a previously deleted user, defaults to all // previous // roles Iterator<Group> currentGroups = jackrabbitUser.memberOf(); while ( currentGroups.hasNext() ) { currentGroups.next().removeMember( jackrabbitUser ); } purgeUserFromCache( user.getUsername() ); // [BISERVER-9215] jackrabbitUser.remove(); } else { throw new NotFoundException( "" ); //$NON-NLS-1$ } } else { throw new RepositoryException( Messages.getInstance().getString( "AbstractJcrBackedUserRoleDao.ERROR_0004_LAST_USER_NEEDED_IN_ROLE", tenantAdminRoleName ) ); } }
@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(); } } }
it = auth.memberOf(); 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()); }
it = auth.memberOf(); while (it.hasNext()) { assertFalse(groupId.equals(it.next().getID()));
@Test public void testLoginPopulatesPrincipals() throws Exception { ContentSession cs = null; try { cs = login(new SimpleCredentials(USER_ID, new char[0])); Set<String> expectedExternal = new HashSet<>(); calcExpectedPrincipalNames(idp.getUser(USER_ID), syncConfig.user().getMembershipNestingDepth(), expectedExternal); Set<Principal> principals = new HashSet<>(cs.getAuthInfo().getPrincipals()); root.refresh(); PrincipalManager principalManager = getPrincipalManager(root); for (String pName : expectedExternal) { Principal p = principalManager.getPrincipal(pName); assertNotNull(p); assertTrue(principals.remove(p)); } UserManager uMgr = getUserManager(root); User u = uMgr.getAuthorizable(USER_ID, User.class); assertTrue(principals.remove(u.getPrincipal())); Iterator<Group> it = u.memberOf(); assertFalse(it.hasNext()); assertTrue(principals.remove(EveryonePrincipal.getInstance())); assertTrue(principals.isEmpty()); } finally { if (cs != null) { cs.close(); } options.clear(); } }
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); } } }
assertTrueMemberOfContainsGroup(user.memberOf(), newGroup);
assertTrueMemberOfContainsGroup(auth.memberOf(), newGroup);