diff --git a/server/src/main/java/com/epam/aidial/core/server/security/AccessService.java b/server/src/main/java/com/epam/aidial/core/server/security/AccessService.java index 33930b84..cc83a182 100644 --- a/server/src/main/java/com/epam/aidial/core/server/security/AccessService.java +++ b/server/src/main/java/com/epam/aidial/core/server/security/AccessService.java @@ -217,14 +217,9 @@ public static Map> getAppResourceAcc } String parentPath = resource.getParentPath(); - String filePath; - if (resource.isFolder()) { - filePath = parentPath; - } else { - filePath = parentPath == null - ? resource.getName() - : parentPath + ResourceDescriptor.PATH_SEPARATOR + resource.getName(); - } + String filePath = parentPath == null + ? resource.getName() + : parentPath + ResourceDescriptor.PATH_SEPARATOR + resource.getName(); if (filePath != null && filePath.startsWith(appPath)) { result.put(resource, ResourceAccessType.ALL); diff --git a/server/src/test/java/com/epam/aidial/core/server/service/AccessServiceTest.java b/server/src/test/java/com/epam/aidial/core/server/service/AccessServiceTest.java index 7fee72e9..04e299dc 100644 --- a/server/src/test/java/com/epam/aidial/core/server/service/AccessServiceTest.java +++ b/server/src/test/java/com/epam/aidial/core/server/service/AccessServiceTest.java @@ -80,6 +80,22 @@ public void testGetAppResourceAccess_AppDataFile() { assertEquals(ResourceAccessType.ALL, result.get(descriptor)); } + @Test + public void testGetAppResourceAccess_AppDataFolder() { + ProxyContext context = mock(ProxyContext.class); + ApiKeyData apiKeyData = new ApiKeyData(); + apiKeyData.setPerRequestKey("key"); + when(context.getApiKeyData()).thenReturn(apiKeyData); + when(context.getUserSub()).thenReturn("user"); + when(context.getSourceDeployment()).thenReturn("app"); + ResourceDescriptor descriptor = new ResourceDescriptor(ResourceTypes.FILE, "app", List.of("appdata"), "bucket", "Users/user/", true); + + Map> result = AccessService.getAppResourceAccess(Set.of(descriptor), context); + + assertTrue(result.containsKey(descriptor)); + assertEquals(ResourceAccessType.ALL, result.get(descriptor)); + } + @Test public void testGetAppResourceAccess_DeploymentNameHasSpecialChars() { ProxyContext context = mock(ProxyContext.class);