@VisibleForTesting
Iterable<ApplicationUser> findUsersWithPermission(final Iterable<Integer> permissions, final String name,
Either<Project, Issue> projectOrIssue, boolean allowEmptyQuery, Integer maxResults)
{
final Predicate<User> permissionPredicate = Either.merge(projectOrIssue.left().map(new Function<Project, Predicate<User>>()
{
@Override
public Predicate<User> apply(Project project)
{
return createProjectPredicate(permissions, project);
}
}).right().map(new Function<Issue, Predicate<User>>()
{
@Override
public Predicate<User> apply(Issue issue)
{
return createIssuePredicate(permissions, issue);
}
}));
return userPickerHelper.findUsers(name, true, false, allowEmptyQuery, permissionPredicate, maxResults);
}