You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2019/11/13 10:24:39 UTC

[incubator-dlab] branch DLAB-1266 created (now e2b69be)

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a change to branch DLAB-1266
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git.


      at e2b69be  [DLAB-1266] Fixed issue with switching between project for user (not admin)

This branch includes the following new commits:

     new e2b69be  [DLAB-1266] Fixed issue with switching between project for user (not admin)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 01/01: [DLAB-1266] Fixed issue with switching between project for user (not admin)

Posted by of...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch DLAB-1266
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit e2b69beaf3f3c18f910faa8dacf914a7c3f5fa4a
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Wed Nov 13 12:24:18 2019 +0200

    [DLAB-1266] Fixed issue with switching between project for user (not admin)
---
 .../java/com/epam/dlab/backendapi/dao/ProjectDAO.java     |  2 +-
 .../java/com/epam/dlab/backendapi/dao/ProjectDAOImpl.java | 15 +++++++++++----
 .../epam/dlab/backendapi/resources/ProjectResource.java   |  7 ++++---
 .../com/epam/dlab/backendapi/service/ProjectService.java  |  2 +-
 .../dlab/backendapi/service/impl/ProjectServiceImpl.java  |  4 ++--
 5 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
index fecf868..e4a10b4 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/ProjectDAO.java
@@ -35,7 +35,7 @@ public interface ProjectDAO {
 
 	List<ProjectDTO> getProjectsWithEndpointStatusNotIn(UserInstanceStatus... statuses);
 
-	List<ProjectDTO> getUserProjects(UserInfo userInfo);
+	List<ProjectDTO> getUserProjects(UserInfo userInfo, boolean active);
 
 	void create(ProjectDTO projectDTO);
 
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 ecddde1..5e79983 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
@@ -77,13 +77,11 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO {
 	}
 
 	@Override
-	public List<ProjectDTO> getUserProjects(UserInfo userInfo) {
+	public List<ProjectDTO> getUserProjects(UserInfo userInfo, boolean active) {
 		final Set<String> groups = Stream.concat(userGroupDao.getUserGroups(userInfo.getName()).stream(),
 				userInfo.getRoles().stream())
 				.collect(Collectors.toSet());
-		final String groupsRegex = !groups.isEmpty() ? String.join("|", groups) + "|" + ANYUSER : ANYUSER;
-		return find(PROJECTS_COLLECTION, and(elemMatch(GROUPS, regexCaseInsensitive(groupsRegex)),
-				eq(ENDPOINT_STATUS_FIELD, UserInstanceStatus.RUNNING.name())), ProjectDTO.class);
+		return find(PROJECTS_COLLECTION, userProjectCondition(groups, active), ProjectDTO.class);
 	}
 
 	@Override
@@ -154,6 +152,15 @@ public class ProjectDAOImpl extends BaseDAO implements ProjectDAO {
 		return eq("name", name);
 	}
 
+	private Bson userProjectCondition(Set<String> groups, boolean active) {
+		final String groupsRegex = !groups.isEmpty() ? String.join("|", groups) + "|" + ANYUSER : ANYUSER;
+		if (active) {
+			return and(elemMatch(GROUPS, regexCaseInsensitive(groupsRegex)),
+					eq(ENDPOINT_STATUS_FIELD, UserInstanceStatus.RUNNING.name()));
+		}
+		return elemMatch(GROUPS, regexCaseInsensitive(groupsRegex));
+	}
+
 	private Bson projectAndEndpointCondition(String projectName, String endpointName) {
 		return and(eq("name", projectName), eq("endpoints.name", endpointName));
 	}
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
index e7ee7a8..7ec1a26 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ProjectResource.java
@@ -210,12 +210,13 @@ public class ProjectResource {
 					content = @Content(mediaType = MediaType.APPLICATION_JSON, schema =
 					@Schema(implementation = ProjectDTO.class))),
 	})
-	@Path("/me")
 	@GET
+	@Path("/me")
 	@Produces(MediaType.APPLICATION_JSON)
-	public Response getUserProjects(@Parameter(hidden = true) @Auth UserInfo userInfo) {
+	public Response getUserProjects(@Parameter(hidden = true) @Auth UserInfo userInfo,
+									@QueryParam("active") @DefaultValue("false") boolean active) {
 		return Response
-				.ok(projectService.getUserActiveProjects(userInfo))
+				.ok(projectService.getUserActiveProjects(userInfo, active))
 				.build();
 	}
 
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
index 814aff3..d4c8851 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/ProjectService.java
@@ -31,7 +31,7 @@ public interface ProjectService {
 
 	List<ProjectManagingDTO> getProjectsForManaging();
 
-	List<ProjectDTO> getUserActiveProjects(UserInfo userInfo);
+	List<ProjectDTO> getUserActiveProjects(UserInfo userInfo, boolean active);
 
 	List<ProjectDTO> getProjectsWithStatus(ProjectDTO.Status status);
 
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
index 049e17e..9233083 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ProjectServiceImpl.java
@@ -109,8 +109,8 @@ public class ProjectServiceImpl implements ProjectService {
 	}
 
 	@Override
-	public List<ProjectDTO> getUserActiveProjects(UserInfo userInfo) {
-		return projectDAO.getUserProjects(userInfo);
+	public List<ProjectDTO> getUserActiveProjects(UserInfo userInfo, boolean active) {
+		return projectDAO.getUserProjects(userInfo, active);
 	}
 
 	@Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org