This is an automated email from the ASF dual-hosted git repository. bhliva pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/develop by this push: new 33556e7 DLAB-000 fixed bug connected with project dropdown during resource creation 33556e7 is described below commit 33556e7364e9422134788ec120bcd2d3a5cdf4bb Author: bhliva <bohdan_hl...@epam.com> AuthorDate: Thu Oct 31 14:09:45 2019 +0200 DLAB-000 fixed bug connected with project dropdown during resource creation --- .../com/epam/dlab/backendapi/dao/ProjectDAOImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java index 12433bf..c54af47 100644 --- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java +++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java @@ -17,6 +17,7 @@ import java.util.Optional; import java.util.Set; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.util.stream.Stream; import static com.mongodb.client.model.Filters.*; @@ -59,8 +60,11 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO { @Override public List<ProjectDTO> getUserProjects(UserInfo userInfo) { - return find(PROJECTS_COLLECTION, and(in(GROUPS, Sets.union(userGroupDao.getUserGroups(userInfo.getName()), - userInfo.getRoles())), eq(ENDPOINT_STATUS_FIELD, UserInstanceStatus.RUNNING.name())), + final Set<String> groups = Stream.concat(userGroupDao.getUserGroups(userInfo.getName()).stream(), + userInfo.getRoles().stream()) + .collect(Collectors.toSet()); + return find(PROJECTS_COLLECTION, and(elemMatch(GROUPS, regexCaseInsensitive(String.join("|", groups))), eq(ENDPOINT_STATUS_FIELD, + UserInstanceStatus.RUNNING.name())), ProjectDTO.class); } @@ -125,8 +129,7 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO { @Override public boolean isAnyProjectAssigned(Set<String> groups) { final String groupsRegex = !groups.isEmpty() ? String.join("|", groups) + "|" + ANYUSER : ANYUSER; - return !Iterables.isEmpty(find(PROJECTS_COLLECTION, elemMatch(GROUPS, new Document("$regex", - "^(" + groupsRegex + ")$").append("$options", "i")))); + return !Iterables.isEmpty(find(PROJECTS_COLLECTION, elemMatch(GROUPS, regexCaseInsensitive(groupsRegex)))); } private Bson projectCondition(String name) { @@ -136,4 +139,9 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO { private Bson projectAndEndpointCondition(String projectName, String endpointName) { return and(eq("name", projectName), eq("endpoints.name", endpointName)); } + + private Document regexCaseInsensitive(String values) { + return new Document("$regex", + "^(" + values + ")$").append("$options", "i"); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org