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

dyankiv pushed a commit to branch DATALAB-2809
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit 41004af571371c2d6e6087f6f676082037fc6c9b
Author: Denys Yankiv <[email protected]>
AuthorDate: Tue Jun 28 18:26:57 2022 +0300

    show shared images during exploratory creation
---
 .../backendapi/resources/ImageExploratoryResource.java      |  2 +-
 .../datalab/backendapi/service/ImageExploratoryService.java |  2 +-
 .../service/impl/ImageExploratoryServiceImpl.java           | 13 ++++++++-----
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
index 819ae04bc..10a300195 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
@@ -84,7 +84,7 @@ public class ImageExploratoryResource {
                               @QueryParam("project") String project,
                               @QueryParam("endpoint") String endpoint) {
         log.debug("Getting images for user {}, project {}", ui.getName(), 
project);
-        final List<ImageInfoRecord> images = 
imageExploratoryService.getNotFailedImages(ui.getName(), dockerImage,
+        final List<ImageInfoRecord> images = 
imageExploratoryService.getNotFailedImages(ui, dockerImage,
                 project, endpoint);
         return Response.ok(images).build();
     }
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
index 98c439b70..a1c4a22f7 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
@@ -33,7 +33,7 @@ public interface ImageExploratoryService {
 
     void finishImageCreate(Image image, String exploratoryName, String 
newNotebookIp);
 
-    List<ImageInfoRecord> getNotFailedImages(String user, String dockerImage, 
String project, String endpoint);
+    List<ImageInfoRecord> getNotFailedImages(UserInfo user, String 
dockerImage, String project, String endpoint);
 
     List<ImageInfoRecord> getNotFailedImages(String dockerImage, String 
project, String endpoint);
 
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
index 842e3b7ec..5047d2517 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
@@ -172,8 +172,10 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
     }
 
     @Override
-    public List<ImageInfoRecord> getNotFailedImages(String user, String 
dockerImage, String project, String endpoint) {
-        return imageExploratoryDao.getImages(user, dockerImage, project, 
endpoint, ImageStatus.CREATED, ImageStatus.CREATING);
+    public List<ImageInfoRecord> getNotFailedImages(UserInfo user, String 
dockerImage, String project, String endpoint) {
+        List<ImageInfoRecord> images = 
imageExploratoryDao.getImages(user.getName(), dockerImage, project, endpoint, 
ImageStatus.CREATED, ImageStatus.CREATING);
+        images.addAll(getSharedImages(user,dockerImage,project,endpoint));
+        return images;
     }
 
     @Override
@@ -268,8 +270,8 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
                 .filter(img -> !img.getUser().equals(userInfo.getName()))
                 .filter(img ->
                         UserRoles.checkAccess(userInfo, RoleType.IMAGE, 
img.getFullName(), userInfo.getRoles()))
-                .peek(img -> img.setShared(true))
                 .collect(Collectors.toList());
+        sharedImages.forEach(img -> img.setShared(true));
         log.info("Shared with user {} images : {}", userInfo.getName(), 
sharedImages);
         return sharedImages;
     }
@@ -280,8 +282,8 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
                 .filter(img -> !img.getUser().equals(userInfo.getName()))
                 .filter(img -> img.getDockerImage().equals(dockerImage) && 
img.getProject().equals(project) && img.getEndpoint().equals(endpoint))
                 .filter(img -> UserRoles.checkAccess(userInfo, RoleType.IMAGE, 
img.getFullName(), userInfo.getRoles()))
-                .peek(img -> img.setShared(true))
                 .collect(Collectors.toList());
+        sharedImages.forEach(img -> img.setShared(true));
         log.info("Found shared with user {} images {}", userInfo.getName(), 
sharedImages);
         return sharedImages;
     }
@@ -292,8 +294,8 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
                 .filter(img -> !img.getUser().equals(userInfo.getName()))
                 .filter(img -> img.getProject().equals(project) )
                 .filter(img -> UserRoles.checkAccess(userInfo, RoleType.IMAGE, 
img.getFullName(), userInfo.getRoles()))
-                .peek(img -> img.setShared(true))
                 .collect(Collectors.toList());
+        sharedImages.forEach(img -> img.setShared(true));
         log.info("Found shared with user {} images {}", userInfo.getName(), 
sharedImages);
         return sharedImages;
     }
@@ -301,6 +303,7 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
     private boolean isSharedImage(String imageFullName){
         String anyUser = "$anyuser";
         List<UserRoleDTO> imageRoles = userRoleDAO.findAll().stream()
+                .filter( r -> r.getType().equals(UserRoleDTO.Type.IMAGE))
                 .filter(r -> r.getImages().contains(imageFullName))
                 .filter( r -> (r.getGroups().contains(anyUser) && 
r.getGroups().size() >= 2)
                         || (!r.getGroups().contains(anyUser) && 
!r.getGroups().isEmpty()))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to