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

Reply via email to