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

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

commit 0b9e2a4c1675db6806fc99ef1eef644109d982d1
Author: Denys Yankiv <[email protected]>
AuthorDate: Fri Sep 9 13:03:29 2022 +0300

    not allowing others to reshare images
---
 .../service/impl/ImageExploratoryServiceImpl.java          | 14 ++------------
 .../src/main/resources/mongo/general/mongo_roles.json      | 13 -------------
 2 files changed, 2 insertions(+), 25 deletions(-)

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 cc0611af4..c9201d8c1 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
@@ -59,7 +59,6 @@ import org.apache.commons.collections4.CollectionUtils;
 import java.util.*;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import static com.epam.datalab.backendapi.domain.AuditActionEnum.CREATE;
 import static com.epam.datalab.backendapi.domain.AuditActionEnum.TERMINATE;
@@ -73,7 +72,6 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
 
     private static final String SHARE_OWN_IMAGES_PAGE = "/api/image/share";
     private static final String TERMINATE_OWN_IMAGES_PAGE = 
"/api/image/terminate";
-    private static final String SHARE_RECEIVED_IMAGES_PAGE = 
"/api/image/shareReceived";
 
     @Inject
     private ExploratoryDAO exploratoryDAO;
@@ -335,19 +333,11 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
 
     @Override
     public ImageUserPermissions getUserImagePermissions(UserInfo userInfo, 
ImageInfoRecord image) {
-        boolean canShare = false;
+        boolean canShare = image.getStatus().equals(ImageStatus.ACTIVE) && 
image.getUser().equals(userInfo.getName())
+                && UserRoles.checkAccess(userInfo, RoleType.PAGE, 
SHARE_OWN_IMAGES_PAGE, userInfo.getRoles());
         boolean canTerminate = (image.getStatus().equals(ImageStatus.ACTIVE) 
|| image.getStatus().equals(ImageStatus.FAILED)) &&
                 (image.getUser().equals(userInfo.getName())
                         && UserRoles.checkAccess(userInfo, RoleType.PAGE, 
TERMINATE_OWN_IMAGES_PAGE, userInfo.getRoles()));
-
-        if(image.getStatus().equals(ImageStatus.ACTIVE) ){
-            if(image.getUser().equals(userInfo.getName())){
-                canShare = UserRoles.checkAccess(userInfo, RoleType.PAGE, 
SHARE_OWN_IMAGES_PAGE,userInfo.getRoles());
-            } else {
-                canShare = UserRoles.checkAccess(userInfo, RoleType.PAGE, 
SHARE_RECEIVED_IMAGES_PAGE,userInfo.getRoles());
-            }
-        }
-
         return new ImageUserPermissions(canShare,canTerminate);
     }
 
diff --git 
a/services/self-service/src/main/resources/mongo/general/mongo_roles.json 
b/services/self-service/src/main/resources/mongo/general/mongo_roles.json
index fd5ca0b08..f6bb344c9 100644
--- a/services/self-service/src/main/resources/mongo/general/mongo_roles.json
+++ b/services/self-service/src/main/resources/mongo/general/mongo_roles.json
@@ -11,19 +11,6 @@
       "$anyuser"
     ]
   },
-  {
-    "_id": "imgShareAllImages",
-    "description": "Allow to share own images and others' images",
-    "type": "IMAGE",
-    "cloud": "GENERAL",
-    "pages": [
-      "/api/image/share",
-      "/api/image/shareReceived"
-    ],
-    "groups": [
-      "$anyuser"
-    ]
-  },
   {
     "_id": "imgTerminateOwnImages",
     "description": "Allow to terminate own images",


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

Reply via email to