diff --git a/Makefile b/Makefile index a06cdf6069c690de34ea30e87c4213cebd59da68..e03b22e72dfe51f65ac982a4e4b153aa0e29e565 100644 --- a/Makefile +++ b/Makefile @@ -103,9 +103,6 @@ tag-broker: tag-search: docker tag dbrepo-search-service:latest "dbrepo/search-service:${TAG}" -tag-user: - docker tag dbrepo-user-service:latest "dbrepo/user-service:${TAG}" - release: build-docker tag release-identifier release-search release-container release-database release-discovery release-gateway release-query release-table release-analyse release-authentication release-metadata-db release-ui release-units release-broker release-metadata release-user release-analyse: tag-analyse diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java index 5f7a5733acbad0c6050c05b290e36a41cadce7ac..c49b7ea08ee1de453788526a3017c11816cdd277 100644 --- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java +++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointIntegrationTest.java @@ -68,13 +68,13 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void findById_noRole_succeeds() throws DockerClientException, ContainerNotFoundException, ContainerNotRunningException { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ findById_generic(CONTAINER_1_ID, CONTAINER_1); @@ -95,12 +95,12 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { public void delete_noRole_fails() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - delete_generic(CONTAINER_1_ID, CONTAINER_1, USER_3_PRINCIPAL); + delete_generic(CONTAINER_1_ID, CONTAINER_1, USER_4_PRINCIPAL); }); } @@ -138,15 +138,15 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void findAll_noRole_succeeds() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ - findAll_generic(USER_3_PRINCIPAL, null); + findAll_generic(USER_4_PRINCIPAL, null); } @Test @@ -183,7 +183,7 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void create_noRole_fails() { final ContainerCreateRequestDto request = ContainerCreateRequestDto.builder() .name(CONTAINER_1_NAME) @@ -192,12 +192,12 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { .build(); /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - create_generic(request, USER_3_PRINCIPAL); + create_generic(request, USER_4_PRINCIPAL); }); } @@ -226,16 +226,16 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void modify_noRole_fails() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - modify_generic(ContainerActionTypeDto.START, CONTAINER_1_ID, CONTAINER_1, USER_3_PRINCIPAL); + modify_generic(ContainerActionTypeDto.START, CONTAINER_1_ID, CONTAINER_1, USER_4_PRINCIPAL); }); } @@ -253,30 +253,16 @@ public class ContainerEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME, authorities = {"modify-container-state"}) - public void modify_notRoleForeign_fails() { - - /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); - - /* test */ - assertThrows(NotAllowedException.class, () -> { - modify_generic(ContainerActionTypeDto.START, CONTAINER_2_ID, CONTAINER_2, USER_1_PRINCIPAL); - }); - } - - @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void modify_noRoleForeign_fails() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - modify_generic(ContainerActionTypeDto.STOP, CONTAINER_1_ID, CONTAINER_1, USER_3_PRINCIPAL); + modify_generic(ContainerActionTypeDto.STOP, CONTAINER_1_ID, CONTAINER_1, USER_4_PRINCIPAL); }); } diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java index 0da3f83ae6a2556954726eb13a7a93b834c7f36a..e16d70f74a3b12ad2829e4c7bc7eb1f0ef9a6308 100644 --- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java +++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java @@ -75,15 +75,15 @@ public class ImageEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void findAll_noRole_succeeds() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ - findAll_generic(USER_3_PRINCIPAL); + findAll_generic(USER_4_PRINCIPAL); } @Test @@ -127,7 +127,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void create_noRole_fails() { final ImageCreateDto request = ImageCreateDto.builder() .repository(IMAGE_1_REPOSITORY) @@ -139,12 +139,12 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - create_generic(request, USER_3_PRINCIPAL); + create_generic(request, USER_4_PRINCIPAL); }); } @@ -244,7 +244,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void modify_noRole_fails() { final ImageChangeDto request = ImageChangeDto.builder() .defaultPort(IMAGE_1_PORT) @@ -255,12 +255,12 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - modify_generic(IMAGE_1_ID, IMAGE_1, request, USER_1_PRINCIPAL); + modify_generic(IMAGE_1_ID, IMAGE_1, request, USER_4_PRINCIPAL); }); } diff --git a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java index e08b535f2dab9c5a70b3435bf3f35a64f06f8094..bf74ff488ba38a31ffc2963ab1a517153acc68b2 100644 --- a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java +++ b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/AccessEndpointUnitTest.java @@ -75,22 +75,12 @@ public class AccessEndpointUnitTest extends BaseUnitTest { } @Test - @Disabled("not unit test") - @WithMockUser(username = USER_1_USERNAME, authorities = {"create-database-access"}) - public void create_hasRoleNoAccess_succeeds() throws UserNotFoundException, NotAllowedException, - QueryMalformedException, DatabaseNotFoundException, DatabaseMalformedException { - - /* test */ - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL); - } - - @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void create_noRoleNoAccess_fails() { /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_3_USERNAME, USER_3, USER_3_PRINCIPAL); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_4_USERNAME, USER_4, USER_4_PRINCIPAL); }); } @@ -119,7 +109,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void find_hasRoleHasAccess_fails() throws AccessDeniedException, NotAllowedException { /* test */ - generic_find(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_RESEARCHER_READ_ACCESS, USER_2_USERNAME, USER_2_ID, USER_1_PRINCIPAL); + generic_find(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_USER_1_READ_ACCESS, USER_2_USERNAME, USER_2_ID, USER_1_PRINCIPAL); } @Test @@ -127,12 +117,12 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void update_anonymous_fails() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_3_USERNAME, null); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_4_USERNAME, null); }); } @@ -141,40 +131,26 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void update_hasRoleNoAccess_fails() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(AccessDeniedException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_3_USERNAME, USER_1_PRINCIPAL); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_4_USERNAME, USER_1_PRINCIPAL); }); } @Test - @Disabled("not unit test") - @WithMockUser(username = USER_1_USERNAME, authorities = {"update-database-access"}) - public void update_hasRoleHasAccess_succeeds() throws UserNotFoundException, AccessDeniedException, - NotAllowedException, QueryMalformedException, DatabaseNotFoundException, DatabaseMalformedException { - - /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); - - /* test */ - generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_DATA_STEWARD_READ_ACCESS, USER_3_USERNAME, USER_1_PRINCIPAL); - } - - @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void update_noRoleNoAccess_fails() { /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_3_USERNAME, USER_3_PRINCIPAL); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, USER_4_USERNAME, USER_4_PRINCIPAL); }); } diff --git a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java index cc40ad18b01174e9303cb0d344d6c5a257a904d9..6b8259fa0f0125ebd81fa0232474014456e35d4a 100644 --- a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java +++ b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/endpoint/DatabaseEndpointUnitTest.java @@ -79,13 +79,6 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { @Autowired private DatabaseEndpoint databaseEndpoint; - @BeforeEach - public void beforeEach() { - DATABASE_1.setOwner(DATABASE_1_OWNER); - DATABASE_2.setOwner(DATABASE_2_OWNER); - DATABASE_3.setOwner(DATABASE_3_OWNER); - } - @Test @WithAnonymousUser public void create_anonymous_fails() { @@ -101,7 +94,7 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void create_noRole_fails() { final DatabaseCreateDto request = DatabaseCreateDto.builder() .name(DATABASE_3_NAME) @@ -109,12 +102,12 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { .build(); /* mock */ - when(userRepository.findByUsername(USER_3_USERNAME)) - .thenReturn(Optional.of(USER_3)); + when(userRepository.findByUsername(USER_4_USERNAME)) + .thenReturn(Optional.of(USER_4)); /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - create_generic(CONTAINER_3_ID, CONTAINER_3, DATABASE_3_ID, null, request, USER_3_PRINCIPAL); + create_generic(CONTAINER_3_ID, CONTAINER_3, DATABASE_3_ID, null, request, USER_4_PRINCIPAL); }); } @@ -206,7 +199,7 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void visibility_noRole_fails() { final DatabaseModifyVisibilityDto request = DatabaseModifyVisibilityDto.builder() .isPublic(true) @@ -214,7 +207,7 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - visibility_generic(CONTAINER_1_ID, CONTAINER_1, DATABASE_1_ID, DATABASE_1, DATABASE_1_DTO, request, USER_3_PRINCIPAL); + visibility_generic(CONTAINER_1_ID, CONTAINER_1, DATABASE_1_ID, DATABASE_1, DATABASE_1_DTO, request, USER_4_PRINCIPAL); }); } @@ -236,7 +229,7 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void transfer_noRole_fails() { final DatabaseTransferDto request = DatabaseTransferDto.builder() .username(USER_4_USERNAME) @@ -248,7 +241,7 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - databaseEndpoint.transfer(CONTAINER_3_ID, DATABASE_3_ID, request, USER_3_PRINCIPAL); + databaseEndpoint.transfer(CONTAINER_3_ID, DATABASE_3_ID, request, USER_4_PRINCIPAL); }); } @@ -431,7 +424,7 @@ public class DatabaseEndpointUnitTest extends BaseUnitTest { .when(messageQueueService) .updatePermissions(principal); when(databaseAccessRepository.save(any(DatabaseAccess.class))) - .thenReturn(DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS); + .thenReturn(DATABASE_1_USER_1_WRITE_ALL_ACCESS); /* test */ final ResponseEntity<DatabaseBriefDto> response = databaseEndpoint.create(containerId, data, principal); diff --git a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java index 50c451ccfa7a8ff0d74bfc0d699cd6481135e041..5c9a0bbdce047b2f7f7092f3d889d686a806105e 100644 --- a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java +++ b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java @@ -168,7 +168,7 @@ public class AccessServiceIntegrationTest extends BaseUnitTest { .build(); /* mock */ - databaseAccessRepository.save(DATABASE_1_DEVELOPER_READ_ACCESS); + databaseAccessRepository.save(DATABASE_1_USER_2_READ_ACCESS); /* test */ assertThrows(expectedException, () -> { @@ -210,7 +210,7 @@ public class AccessServiceIntegrationTest extends BaseUnitTest { .build(); /* mock */ - databaseAccessRepository.save(DATABASE_1_DEVELOPER_READ_ACCESS); + databaseAccessRepository.save(DATABASE_1_USER_2_READ_ACCESS); DockerConfig.createContainer(BIND_WEATHER, CONTAINER_1_SIMPLE, CONTAINER_1_ENV); DockerConfig.startContainer(CONTAINER_1_SIMPLE); diff --git a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java index 77d4d928986491c62c1038bcbf07db5311aaf2df..1d08e45ee886f353c4c00b64ed199542929a5a5b 100644 --- a/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java +++ b/dbrepo-database-service/rest-service/src/test/java/at/tuwien/service/AccessServiceUnitTest.java @@ -57,7 +57,7 @@ public class AccessServiceUnitTest extends BaseUnitTest { /* mock */ when(databaseAccessRepository.findByHdbid(DATABASE_1_ID)) - .thenReturn(List.of(DATABASE_1_RESEARCHER_READ_ACCESS, DATABASE_2_RESEARCHER_READ_ACCESS)); + .thenReturn(List.of(DATABASE_1_USER_1_READ_ACCESS, DATABASE_2_USER_1_READ_ACCESS)); /* test */ final List<DatabaseAccess> response = accessService.list(DATABASE_1_ID); @@ -81,7 +81,7 @@ public class AccessServiceUnitTest extends BaseUnitTest { /* mock */ when(databaseAccessRepository.findByDatabaseIdAndUsername(DATABASE_1_ID, USER_1_USERNAME)) - .thenReturn(Optional.of(DATABASE_1_RESEARCHER_READ_ACCESS)); + .thenReturn(Optional.of(DATABASE_1_USER_1_READ_ACCESS)); /* test */ final DatabaseAccess response = accessService.find(DATABASE_1_ID, USER_1_USERNAME); diff --git a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointIntegrationTest.java b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointIntegrationTest.java index a3a0191d1afebd99dee10509164f63f6ffc2b1d1..1d642305dd1d129877f67542091af5122e757514 100644 --- a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointIntegrationTest.java +++ b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointIntegrationTest.java @@ -100,7 +100,7 @@ public class IdentifierEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void list_noRole_succeeds() { /* mock */ @@ -171,12 +171,12 @@ public class IdentifierEndpointIntegrationTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void create_noRole_fails() { /* test */ assertThrows(AccessDeniedException.class, () -> { - identifierEndpoint.create(IDENTIFIER_2_DTO_REQUEST, "ABC", USER_1_PRINCIPAL); + identifierEndpoint.create(IDENTIFIER_2_DTO_REQUEST, "ABC", USER_4_PRINCIPAL); }); } diff --git a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointUnitTest.java b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointUnitTest.java index cab5bb1b8973ff40ded5eec41aa3699f46952a78..8f8955b0c5c4b004a544da6dffcbedef45800674 100644 --- a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointUnitTest.java +++ b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/IdentifierEndpointUnitTest.java @@ -90,6 +90,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { private EndpointConfig endpointConfig; @Test + @WithAnonymousUser public void find_json_succeeds() throws IdentifierNotFoundException, QueryNotFoundException, RemoteUnavailableException, IdentifierRequestException { final String accept = "application/json"; @@ -108,6 +109,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void find_xml_succeeds() throws IdentifierNotFoundException, QueryNotFoundException, RemoteUnavailableException, IdentifierRequestException, IOException { final InputStreamResource resource = new InputStreamResource(FileUtils.openInputStream( @@ -123,6 +125,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void find_csv_succeeds() throws IdentifierNotFoundException, QueryNotFoundException, RemoteUnavailableException, IOException, IdentifierRequestException { final InputStreamResource resource = new InputStreamResource(FileUtils.openInputStream( @@ -138,6 +141,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void find_httpRedirect_succeeds() throws IdentifierNotFoundException, QueryNotFoundException, RemoteUnavailableException, IdentifierRequestException { @@ -150,10 +154,11 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void create_anonymousDatabase_fails() { /* test */ - assertThrows(AuthenticationCredentialsNotFoundException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, IDENTIFIER_1_DTO_REQUEST, null, null, null, null, null); }); } @@ -166,19 +171,19 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { /* mock */ when(accessRepository.findByHdbidAndHuserid(DATABASE_1_ID, USER_1_ID)) - .thenReturn(Optional.of(DATABASE_1_RESEARCHER_READ_ACCESS)); + .thenReturn(Optional.of(DATABASE_1_USER_1_READ_ACCESS)); /* test */ - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_RESEARCHER_READ_ACCESS, IDENTIFIER_1_DTO_REQUEST, IDENTIFIER_1, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_USER_1_READ_ACCESS, IDENTIFIER_1_DTO_REQUEST, IDENTIFIER_1, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); } @Test - @WithMockUser(username = USER_3_USERNAME, authorities = {"create-identifier"}) + @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"}) public void create_hasRoleDatabaseNoAccess_fails() { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, IDENTIFIER_1_DTO_REQUEST, IDENTIFIER_1, USER_3_PRINCIPAL, USER_3_ID, USER_3_USERNAME, USER_3); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, null, IDENTIFIER_1_DTO_REQUEST, IDENTIFIER_1, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); }); } @@ -200,7 +205,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { at.tuwien.exception.AccessDeniedException { /* test */ - generic_create(CONTAINER_2_ID, DATABASE_2_ID, DATABASE_2, DATABASE_2_RESEARCHER_READ_ACCESS, IDENTIFIER_2_DTO_REQUEST, IDENTIFIER_2, USER_2_PRINCIPAL, USER_2_ID, USER_2_USERNAME, USER_2); + generic_create(CONTAINER_2_ID, DATABASE_2_ID, DATABASE_2, DATABASE_2_USER_1_READ_ACCESS, IDENTIFIER_2_DTO_REQUEST, IDENTIFIER_2, USER_2_PRINCIPAL, USER_2_ID, USER_2_USERNAME, USER_2); } @Test @@ -222,7 +227,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(IdentifierRequestException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_RESEARCHER_READ_ACCESS, request, null, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_USER_1_READ_ACCESS, request, null, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); }); } @@ -246,7 +251,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(IdentifierRequestException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_RESEARCHER_READ_ACCESS, request, null, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, DATABASE_1_USER_1_READ_ACCESS, request, null, USER_1_PRINCIPAL, USER_1_ID, USER_1_USERNAME, USER_1); }); } diff --git a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/PersistenceEndpointUnitTest.java b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/PersistenceEndpointUnitTest.java index 470f11c7a85ba1f0dabb951114dbe01eaef6d9bd..1789fe663688f33125a39a08750551a9dcd08825 100644 --- a/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/PersistenceEndpointUnitTest.java +++ b/dbrepo-identifier-service/rest-service/src/test/java/at/tuwien/endpoint/PersistenceEndpointUnitTest.java @@ -534,7 +534,7 @@ public class PersistenceEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME, authorities = {}) + @WithMockUser(username = USER_4_USERNAME, authorities = {}) public void update_noRole_fails() { /* test */ @@ -545,17 +545,11 @@ public class PersistenceEndpointUnitTest extends BaseUnitTest { @Test @WithMockUser(username = USER_3_USERNAME, authorities = {"modify-identifier-metadata"}) - public void update_hasRoleNoAccess_succeeds() throws at.tuwien.exception.AccessDeniedException { - - /* mock */ - doThrow(at.tuwien.exception.AccessDeniedException.class) - .when(accessService) - .find(IDENTIFIER_3_DATABASE_ID, USER_3_ID); + public void update_hasRoleNoAccess_succeeds() throws UserNotFoundException, IdentifierUpdateBadFormException, + NotAllowedException, IdentifierNotFoundException, IdentifierRequestException { /* test */ - assertThrows(NotAllowedException.class, () -> { - generic_update(IDENTIFIER_3_ID, IDENTIFIER_3, IDENTIFIER_3_DTO_UPDATE_REQUEST, USER_3_USERNAME, USER_3, USER_3_PRINCIPAL); - }); + generic_update(IDENTIFIER_3_ID, IDENTIFIER_3, IDENTIFIER_3_DTO_UPDATE_REQUEST, USER_3_USERNAME, USER_3, USER_3_PRINCIPAL); } @Test @@ -565,7 +559,7 @@ public class PersistenceEndpointUnitTest extends BaseUnitTest { /* mock */ when(accessService.find(IDENTIFIER_3_DATABASE_ID, USER_3_ID)) - .thenReturn(DATABASE_3_DATA_STEWARD_READ_ACCESS); + .thenReturn(DATABASE_3_USER_3_READ_ACCESS); /* test */ generic_update(IDENTIFIER_3_ID, IDENTIFIER_3, IDENTIFIER_3_DTO_UPDATE_REQUEST, USER_3_USERNAME, USER_3, USER_3_PRINCIPAL); @@ -580,7 +574,7 @@ public class PersistenceEndpointUnitTest extends BaseUnitTest { /* mock */ when(accessService.find(IDENTIFIER_1_DATABASE_ID, USER_1_ID)) - .thenReturn(DATABASE_1_DATA_STEWARD_READ_ACCESS); + .thenReturn(DATABASE_1_USER_3_READ_ACCESS); /* test */ assertThrows(IdentifierRequestException.class, () -> { diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java index 0f1f64b1dfd8b0a62755fe4a12a3494a358497bc..3827019e11f95f046770d8cd1d52ad8dc7dbba6f 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java @@ -41,6 +41,10 @@ public class IdentifierUpdateDto { @Schema(example = "Air quality reports at Stephansplatz, Vienna") private String description; + @NotNull + @Schema(example = "everyone") + private VisibilityTypeDto visibility; + @JsonProperty("publication_day") @Schema(example = "15") private Integer publicationDay; diff --git a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java index 987f301117ffd757bf26f187e11e3d561e6818fb..757b175de4fbdcaa8ae912e5cff5986d746f2b3d 100644 --- a/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-db/test/src/main/java/at/tuwien/test/BaseTest.java @@ -147,6 +147,9 @@ public abstract class BaseTest { ESCALATED_DATABASE_HANDLING, ESCALATED_IDENTIFIER_HANDLING, ESCALATED_QUERY_HANDLING, ESCALATED_TABLE_HANDLING)); + public final static String[] DEFAULT_DATA_STEWARD_ROLES = ArrayUtil.merge(List.of(new String[]{"default-data-steward-roles"}, + ESCALATED_IDENTIFIER_HANDLING)); + public final static List<GrantedAuthorityDto> AUTHORITY_DEFAULT_RESEARCHER_ROLES = Arrays.stream(DEFAULT_RESEARCHER_ROLES) .map(GrantedAuthorityDto::new) .collect(Collectors.toList()); @@ -155,6 +158,10 @@ public abstract class BaseTest { .map(GrantedAuthorityDto::new) .collect(Collectors.toList()); + public final static List<GrantedAuthorityDto> AUTHORITY_DEFAULT_DATA_STEWARD_ROLES = Arrays.stream(DEFAULT_DATA_STEWARD_ROLES) + .map(GrantedAuthorityDto::new) + .collect(Collectors.toList()); + public final static List<GrantedAuthority> AUTHORITY_DEFAULT_RESEARCHER_AUTHORITIES = AUTHORITY_DEFAULT_RESEARCHER_ROLES.stream() .map(a -> new SimpleGrantedAuthority(a.getAuthority())) .collect(Collectors.toList()); @@ -163,6 +170,10 @@ public abstract class BaseTest { .map(a -> new SimpleGrantedAuthority(a.getAuthority())) .collect(Collectors.toList()); + public final static List<GrantedAuthority> AUTHORITY_DEFAULT_DATA_STEWARD_AUTHORITIES = AUTHORITY_DEFAULT_DATA_STEWARD_ROLES.stream() + .map(a -> new SimpleGrantedAuthority(a.getAuthority())) + .collect(Collectors.toList()); + public final static UserThemeSetDto USER_THEME_DARK_DTO = UserThemeSetDto.builder() .themeDark(true) .build(); @@ -526,7 +537,7 @@ public abstract class BaseTest { .username(USER_3_USERNAME) .email(USER_3_EMAIL) .password(USER_3_PASSWORD) - .authorities(List.of()) + .authorities(AUTHORITY_DEFAULT_DATA_STEWARD_AUTHORITIES) .build(); public final static Principal USER_3_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_3_DETAILS, @@ -575,7 +586,7 @@ public abstract class BaseTest { .username(USER_4_USERNAME) .email(USER_4_EMAIL) .password(USER_4_PASSWORD) - .authorities(AUTHORITY_DEFAULT_RESEARCHER_AUTHORITIES) + .authorities(List.of()) .build(); public final static Principal USER_4_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_4_DETAILS, @@ -1082,55 +1093,55 @@ public abstract class BaseTest { .views(List.of()) .build(); - public final static DatabaseAccess DATABASE_1_RESEARCHER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_1_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_1_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_1_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_1_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_1_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_1_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_1_DEVELOPER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_2_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_1_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_1_DEVELOPER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_2_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_1_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_1_DEVELOPER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_2_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_1_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_1_DATA_STEWARD_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_3_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_1_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_1_DATA_STEWARD_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_3_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_1_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_1_DATA_STEWARD_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_1_USER_3_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_1_ID) .huserid(USER_3_ID) @@ -1207,19 +1218,19 @@ public abstract class BaseTest { .views(List.of()) .build(); - public final static DatabaseAccess DATABASE_2_RESEARCHER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_1_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_2_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_1_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_2_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_2_RESEARCHER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_1_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_2_ID) .huserid(USER_1_ID) @@ -1231,37 +1242,37 @@ public abstract class BaseTest { .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_2_DEVELOPER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_2_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_2_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_2_DEVELOPER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_2_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_2_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_2_DEVELOPER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_2_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_2_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_2_DATA_STEWARD_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_3_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_2_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_2_DATA_STEWARD_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_3_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_2_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_2_DATA_STEWARD_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_2_USER_3_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_2_ID) .huserid(USER_3_ID) @@ -1338,55 +1349,55 @@ public abstract class BaseTest { .views(List.of()) .build(); - public final static DatabaseAccess DATABASE_3_RESEARCHER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_1_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_3_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_1_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_3_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_1_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_3_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_3_DEVELOPER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_2_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_3_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_3_DEVELOPER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_2_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_3_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_3_DEVELOPER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_2_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_3_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_3_DATA_STEWARD_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_3_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_3_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_3_DATA_STEWARD_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_3_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_3_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_3_DATA_STEWARD_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_3_USER_3_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_3_ID) .huserid(USER_3_ID) @@ -1450,55 +1461,55 @@ public abstract class BaseTest { .views(List.of() /* for jpa */) .build(); - public final static DatabaseAccess DATABASE_4_RESEARCHER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_1_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_4_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_4_RESEARCHER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_1_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_4_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_4_RESEARCHER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_1_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_4_ID) .huserid(USER_1_ID) .build(); - public final static DatabaseAccess DATABASE_4_DEVELOPER_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_2_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_4_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_4_DEVELOPER_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_2_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_4_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_4_DEVELOPER_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_2_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_4_ID) .huserid(USER_2_ID) .build(); - public final static DatabaseAccess DATABASE_4_DATA_STEWARD_READ_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_3_READ_ACCESS = DatabaseAccess.builder() .type(AccessType.READ) .hdbid(DATABASE_4_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_4_DATA_STEWARD_WRITE_OWN_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_3_WRITE_OWN_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_OWN) .hdbid(DATABASE_4_ID) .huserid(USER_3_ID) .build(); - public final static DatabaseAccess DATABASE_4_DATA_STEWARD_WRITE_ALL_ACCESS = DatabaseAccess.builder() + public final static DatabaseAccess DATABASE_4_USER_3_WRITE_ALL_ACCESS = DatabaseAccess.builder() .type(AccessType.WRITE_ALL) .hdbid(DATABASE_4_ID) .huserid(USER_3_ID) @@ -4152,6 +4163,8 @@ public abstract class BaseTest { public final static IdentifierTypeDto IDENTIFIER_1_TYPE_DTO = IdentifierTypeDto.DATABASE; public final static UUID IDENTIFIER_1_CREATED_BY = USER_1_ID; public final static User IDENTIFIER_1_CREATOR = USER_1; + public final static VisibilityType IDENTIFIER_1_VISIBILITY = VisibilityType.EVERYONE; + public final static VisibilityTypeDto IDENTIFIER_1_VISIBILITY_DTO = VisibilityTypeDto.EVERYONE; public final static Creator IDENTIFIER_1_CREATOR_1 = Creator.builder() .id(CREATOR_1_ID) @@ -4193,6 +4206,7 @@ public abstract class BaseTest { .type(IDENTIFIER_1_TYPE) .creator(USER_1) .creators(List.of(IDENTIFIER_1_CREATOR_1)) + .visibility(IDENTIFIER_1_VISIBILITY) .build(); public final static Identifier IDENTIFIER_1_SIMPLE = Identifier.builder() @@ -4217,6 +4231,7 @@ public abstract class BaseTest { .type(IDENTIFIER_1_TYPE) .creator(null /* for jpa */) .creators(List.of() /* for jpa */) + .visibility(IDENTIFIER_1_VISIBILITY) .build(); public final static Identifier IDENTIFIER_1_WITH_DOI = Identifier.builder() @@ -4241,6 +4256,7 @@ public abstract class BaseTest { .type(IDENTIFIER_1_TYPE) .creator(USER_1) .creators(List.of(IDENTIFIER_1_CREATOR_1)) + .visibility(IDENTIFIER_1_VISIBILITY) .build(); public final static IdentifierDto IDENTIFIER_1_DTO = IdentifierDto.builder() @@ -4265,6 +4281,7 @@ public abstract class BaseTest { .type(IDENTIFIER_1_TYPE_DTO) .creator(USER_1_DTO) .creators(List.of(IDENTIFIER_1_CREATOR_1_DTO)) + .visibility(IDENTIFIER_1_VISIBILITY_DTO) .build(); public final static IdentifierDto IDENTIFIER_1_WITH_DOI_DTO = IdentifierDto.builder() @@ -4289,6 +4306,7 @@ public abstract class BaseTest { .type(IDENTIFIER_1_TYPE_DTO) .creator(USER_1_DTO) .creators(List.of(IDENTIFIER_1_CREATOR_1_DTO)) + .visibility(IDENTIFIER_1_VISIBILITY_DTO) .build(); public final static Long IDENTIFIER_2_ID = 2L; @@ -4314,6 +4332,8 @@ public abstract class BaseTest { public final static IdentifierTypeDto IDENTIFIER_2_TYPE_DTO = IdentifierTypeDto.SUBSET; public final static UUID IDENTIFIER_2_CREATED_BY = USER_2_ID; public final static User IDENTIFIER_2_CREATOR = USER_2; + public final static VisibilityType IDENTIFIER_2_VISIBILITY = VisibilityType.SELF; + public final static VisibilityTypeDto IDENTIFIER_2_VISIBILITY_DTO = VisibilityTypeDto.SELF; public final static Long IDENTIFIER_2_CREATOR_1_ID = 2L; @@ -4378,6 +4398,7 @@ public abstract class BaseTest { .type(IDENTIFIER_2_TYPE) .creator(USER_2) .creators(List.of(IDENTIFIER_2_CREATOR_1, IDENTIFIER_2_CREATOR_2)) + .visibility(IDENTIFIER_2_VISIBILITY) .build(); public final static Identifier IDENTIFIER_2_SIMPLE = Identifier.builder() @@ -4403,6 +4424,7 @@ public abstract class BaseTest { .type(IDENTIFIER_2_TYPE) .creator(null /* for jpa */) .creators(List.of() /* for jpa */) + .visibility(IDENTIFIER_2_VISIBILITY) .build(); public final static IdentifierDto IDENTIFIER_2_DTO = IdentifierDto.builder() @@ -4428,6 +4450,7 @@ public abstract class BaseTest { .type(IDENTIFIER_2_TYPE_DTO) .creator(USER_2_DTO) .creators(List.of(IDENTIFIER_2_CREATOR_1_DTO, IDENTIFIER_2_CREATOR_2_DTO)) + .visibility(IDENTIFIER_2_VISIBILITY_DTO) .build(); public final static Creator CREATOR_1 = Creator.builder() @@ -4511,6 +4534,7 @@ public abstract class BaseTest { .created(IDENTIFIER_1_CREATED) .lastModified(IDENTIFIER_1_MODIFIED) .creators(List.of(CREATOR_1_DTO)) + .visibility(IDENTIFIER_2_VISIBILITY_DTO) .build(); public final static IdentifierCreateDto IDENTIFIER_1_DTO_REQUEST = IdentifierCreateDto.builder() @@ -4524,6 +4548,7 @@ public abstract class BaseTest { .creators(List.of(CREATOR_1_CREATE_DTO)) .publisher(IDENTIFIER_1_PUBLISHER) .type(IDENTIFIER_1_TYPE_DTO) + .visibility(IDENTIFIER_1_VISIBILITY_DTO) .build(); public final static IdentifierUpdateDto IDENTIFIER_1_DTO_UPDATE_REQUEST = IdentifierUpdateDto.builder() @@ -4538,6 +4563,7 @@ public abstract class BaseTest { .creators(List.of(CREATOR_1_DTO)) .publisher(IDENTIFIER_1_PUBLISHER) .type(IDENTIFIER_1_TYPE_DTO) + .visibility(IDENTIFIER_1_VISIBILITY_DTO) .build(); public final static Long RELATED_IDENTIFIER_2_ID = 1L; @@ -4576,6 +4602,7 @@ public abstract class BaseTest { .creators(List.of(CREATOR_1_CREATE_DTO, CREATOR_2_CREATE_DTO)) .publisher(IDENTIFIER_2_PUBLISHER) .type(IDENTIFIER_2_TYPE_DTO) + .visibility(IDENTIFIER_2_VISIBILITY_DTO) .build(); public final static IdentifierUpdateDto IDENTIFIER_2_DTO_UPDATE_REQUEST = IdentifierUpdateDto.builder() @@ -4593,6 +4620,7 @@ public abstract class BaseTest { .creators(List.of(CREATOR_1_DTO, CREATOR_2_DTO)) .publisher(IDENTIFIER_2_PUBLISHER) .type(IDENTIFIER_2_TYPE_DTO) + .visibility(IDENTIFIER_2_VISIBILITY_DTO) .build(); public final static Long IDENTIFIER_3_ID = 3L; @@ -4618,6 +4646,8 @@ public abstract class BaseTest { public final static IdentifierTypeDto IDENTIFIER_3_TYPE_DTO = IdentifierTypeDto.SUBSET; public final static UUID IDENTIFIER_3_CREATOR_ID = USER_3_ID; public final static User IDENTIFIER_3_CREATOR = USER_3; + public final static VisibilityType IDENTIFIER_3_VISIBILITY = VisibilityType.EVERYONE; + public final static VisibilityTypeDto IDENTIFIER_3_VISIBILITY_DTO = VisibilityTypeDto.EVERYONE; private final static Long IDENTIFIER_3_CREATOR_1_ID = 4L; @@ -4702,6 +4732,7 @@ public abstract class BaseTest { .type(IDENTIFIER_3_TYPE) .creator(IDENTIFIER_3_CREATOR) .creators(List.of(IDENTIFIER_3_CREATOR_1, IDENTIFIER_3_CREATOR_2, IDENTIFIER_3_CREATOR_3)) + .visibility(IDENTIFIER_3_VISIBILITY) .build(); public final static Identifier IDENTIFIER_3_SIMPLE = Identifier.builder() @@ -4727,6 +4758,7 @@ public abstract class BaseTest { .type(IDENTIFIER_3_TYPE) .creator(null /* for jpa */) .creators(List.of() /* for jpa */) + .visibility(IDENTIFIER_3_VISIBILITY) .build(); public final static IdentifierDto IDENTIFIER_3_DTO = IdentifierDto.builder() @@ -4752,6 +4784,7 @@ public abstract class BaseTest { .type(IDENTIFIER_3_TYPE_DTO) .creator(USER_3_DTO) .creators(List.of(IDENTIFIER_3_CREATOR_1_DTO, IDENTIFIER_3_CREATOR_2_DTO, IDENTIFIER_3_CREATOR_3_DTO)) + .visibility(IDENTIFIER_3_VISIBILITY_DTO) .build(); public final static IdentifierCreateDto IDENTIFIER_3_DTO_REQUEST = IdentifierCreateDto.builder() @@ -4766,6 +4799,7 @@ public abstract class BaseTest { .creators(List.of(CREATOR_1_CREATE_DTO)) .publisher(IDENTIFIER_3_PUBLISHER) .type(IDENTIFIER_3_TYPE_DTO) + .visibility(IDENTIFIER_3_VISIBILITY_DTO) .build(); public final static IdentifierUpdateDto IDENTIFIER_3_DTO_UPDATE_REQUEST = IdentifierUpdateDto.builder() @@ -4781,6 +4815,7 @@ public abstract class BaseTest { .creators(List.of(CREATOR_1_DTO)) .publisher(IDENTIFIER_3_PUBLISHER) .type(IDENTIFIER_3_TYPE_DTO) + .visibility(IDENTIFIER_3_VISIBILITY_DTO) .build(); public final static Long IDENTIFIER_4_ID = 4L; @@ -4804,6 +4839,8 @@ public abstract class BaseTest { public final static IdentifierType IDENTIFIER_4_TYPE = IdentifierType.DATABASE; public final static UUID IDENTIFIER_4_CREATOR_ID = USER_4_ID; public final static User IDENTIFIER_4_CREATOR = USER_4; + public final static VisibilityType IDENTIFIER_4_VISIBILITY = VisibilityType.EVERYONE; + public final static VisibilityTypeDto IDENTIFIER_4_VISIBILITY_DTO = VisibilityTypeDto.EVERYONE; public final static Identifier IDENTIFIER_4 = Identifier.builder() .id(IDENTIFIER_4_ID) @@ -4827,6 +4864,7 @@ public abstract class BaseTest { .type(IDENTIFIER_4_TYPE) .creator(USER_3) .creators(List.of()) + .visibility(IDENTIFIER_4_VISIBILITY) .build(); public final static Identifier IDENTIFIER_4_SIMPLE = Identifier.builder() @@ -4851,6 +4889,7 @@ public abstract class BaseTest { .type(IDENTIFIER_4_TYPE) .creator(null /* for jpa */) .creators(List.of() /* for jpa */) + .visibility(IDENTIFIER_4_VISIBILITY) .build(); public final static String VIRTUAL_HOST_NAME = "fda"; diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml index 7c352ef9663d56b514f6d596da0b8a8fad87b3e1..bc381a3a53139859ab007eba2c06d65debc8ecb7 100644 --- a/dbrepo-metadata-service/pom.xml +++ b/dbrepo-metadata-service/pom.xml @@ -143,6 +143,11 @@ <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-test</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java index d06533308a7bf6477ab0141bb285bb1a77219d64..2a6d04fd7edd09f8e53ada15a9a0ebe7265c9460 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java @@ -17,6 +17,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.test.context.support.WithAnonymousUser; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -47,6 +48,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void identify_succeeds() { /* test */ @@ -57,6 +59,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void identifyAlt_succeeds() { /* test */ @@ -67,6 +70,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void listIdentifiers_succeeds() { final OaiListIdentifiersParameters parameters = new OaiListIdentifiersParameters(); @@ -82,6 +86,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void getRecord_formatMissing_fails() { final OaiRecordParameters parameters = new OaiRecordParameters(); @@ -95,6 +100,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void getRecord_unsupportedFormat_fails() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_marc"); @@ -109,6 +115,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void getRecord_noIdentifier_fails() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_dc"); @@ -123,6 +130,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void getRecord_succeeds() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_dc"); @@ -140,6 +148,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void getRecord_notFound_fails() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_dc"); @@ -155,6 +164,7 @@ public class MetadataEndpointUnitTest extends BaseUnitTest { } @Test + @WithAnonymousUser public void listMetadataFormats_succeeds() { /* mock */ diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ExportEndpointUnitTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ExportEndpointUnitTest.java index 73e4b1fd89c8cbcdc2557919e464c891f0508619..6504e0471e47655607b1786e7fe65edeaaf75e60 100644 --- a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ExportEndpointUnitTest.java +++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ExportEndpointUnitTest.java @@ -105,7 +105,7 @@ public class ExportEndpointUnitTest extends BaseUnitTest { UserNotFoundException, IOException { /* test */ - export_generic(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, null, USER_1_PRINCIPAL, USER_1_USERNAME, DATABASE_1_RESEARCHER_READ_ACCESS); + export_generic(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, null, USER_1_PRINCIPAL, USER_1_USERNAME, DATABASE_1_USER_1_READ_ACCESS); } @Test @@ -162,7 +162,7 @@ public class ExportEndpointUnitTest extends BaseUnitTest { UserNotFoundException, IOException { /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, null, USER_2_PRINCIPAL, USER_2_USERNAME, DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, null, USER_2_PRINCIPAL, USER_2_USERNAME, DATABASE_2_USER_1_WRITE_OWN_ACCESS); } @Test @@ -174,7 +174,7 @@ public class ExportEndpointUnitTest extends BaseUnitTest { final Instant timestamp = Instant.now(); /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, timestamp, USER_2_PRINCIPAL, USER_2_USERNAME, DATABASE_2_RESEARCHER_READ_ACCESS); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, timestamp, USER_2_PRINCIPAL, USER_2_USERNAME, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -186,7 +186,7 @@ public class ExportEndpointUnitTest extends BaseUnitTest { final Instant timestamp = Instant.now().plus(10, ChronoUnit.DAYS); /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, timestamp, USER_2_PRINCIPAL, USER_2_USERNAME, DATABASE_2_RESEARCHER_READ_ACCESS); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, timestamp, USER_2_PRINCIPAL, USER_2_USERNAME, DATABASE_2_USER_1_READ_ACCESS); } /* ################################################################################################### */ diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/QueryEndpointUnitTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/QueryEndpointUnitTest.java index 0b84bd24a5fef255b7e03c6b31f591f154ebc574..90634fa49a537eb13870da709c1a96c258c38a45 100644 --- a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/QueryEndpointUnitTest.java +++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/QueryEndpointUnitTest.java @@ -104,7 +104,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(QueryMalformedException.class, () -> { - generic_execute(CONTAINER_3_ID, DATABASE_3_ID, statement, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_DEVELOPER_READ_ACCESS); + generic_execute(CONTAINER_3_ID, DATABASE_3_ID, statement, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_2_READ_ACCESS); }); } @@ -115,7 +115,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(QueryMalformedException.class, () -> { - generic_execute(CONTAINER_3_ID, DATABASE_3_ID, statement, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_DEVELOPER_READ_ACCESS); + generic_execute(CONTAINER_3_ID, DATABASE_3_ID, statement, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_2_READ_ACCESS); }); } @@ -148,7 +148,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_DEVELOPER_WRITE_ALL_ACCESS); + generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_2_WRITE_ALL_ACCESS); } @Test @@ -159,7 +159,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_DEVELOPER_WRITE_ALL_ACCESS); + generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_2_WRITE_ALL_ACCESS); } @Test @@ -170,7 +170,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_DEVELOPER_WRITE_ALL_ACCESS); + generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_2_WRITE_ALL_ACCESS); } @Test @@ -181,7 +181,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_DEVELOPER_WRITE_ALL_ACCESS); + generic_execute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_2_WRITE_ALL_ACCESS); } @Test @@ -205,7 +205,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ generic_reExecute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_ID, QUERY_4, QUERY_4_RESULT_ID, QUERY_4_RESULT_DTO, - USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_RESEARCHER_READ_ACCESS); + USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_1_READ_ACCESS); } @Test @@ -217,7 +217,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ generic_reExecute(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_ID, QUERY_4, QUERY_4_RESULT_ID, QUERY_4_RESULT_DTO, - USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS); + USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_1_WRITE_OWN_ACCESS); } @Test @@ -247,7 +247,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, IOException, NotAllowedException { /* test */ - export_generic(CONTAINER_3_ID, DATABASE_3_ID, QUERY_3_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_RESEARCHER_READ_ACCESS, null, HttpStatus.OK); + export_generic(CONTAINER_3_ID, DATABASE_3_ID, QUERY_3_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_1_READ_ACCESS, null, HttpStatus.OK); } @Test @@ -258,7 +258,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, IOException, NotAllowedException { /* test */ - export_generic(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS, null, HttpStatus.OK); + export_generic(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_1_WRITE_OWN_ACCESS, null, HttpStatus.OK); } @Test @@ -269,7 +269,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, IOException, NotAllowedException { /* test */ - export_generic(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS, null, HttpStatus.OK); + export_generic(CONTAINER_3_ID, DATABASE_3_ID, QUERY_4_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3, DATABASE_3_USER_1_WRITE_ALL_ACCESS, null, HttpStatus.OK); } /* ################################################################################################### */ @@ -295,7 +295,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_READ_ACCESS); + generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -306,7 +306,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS); + generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_OWN_ACCESS); } @Test @@ -317,7 +317,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_ALL_ACCESS); + generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_ALL_ACCESS); } @Test @@ -328,7 +328,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { PaginationException { /* test */ - generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_ALL_ACCESS); + generic_execute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_STATEMENT, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_ALL_ACCESS); } @Test @@ -351,7 +351,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ generic_reExecute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, QUERY_1, QUERY_1_RESULT_ID, QUERY_1_RESULT_DTO, - USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_READ_ACCESS); + USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -363,7 +363,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ generic_reExecute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, QUERY_1, QUERY_1_RESULT_ID, QUERY_1_RESULT_DTO, - USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS); + USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_OWN_ACCESS); } @Test @@ -375,7 +375,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { /* test */ generic_reExecute(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, QUERY_1, QUERY_1_RESULT_ID, QUERY_1_RESULT_DTO, - USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_ALL_ACCESS); + USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_ALL_ACCESS); } @Test @@ -393,7 +393,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { public void export_privateInvalidFormat_fails() throws UserNotFoundException, QueryStoreException, DatabaseConnectionException, TableMalformedException, NotAllowedException, QueryMalformedException, QueryNotFoundException, DatabaseNotFoundException, ImageNotSupportedException, IOException, FileStorageException, ContainerNotFoundException { /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_DEVELOPER_READ_ACCESS, "application/json", HttpStatus.NOT_IMPLEMENTED); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_2_READ_ACCESS, "application/json", HttpStatus.NOT_IMPLEMENTED); } @Test @@ -404,7 +404,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, IOException { /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_READ_ACCESS, null, HttpStatus.OK); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_READ_ACCESS, null, HttpStatus.OK); } @Test @@ -415,7 +415,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, IOException { /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS, null, HttpStatus.OK); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_OWN_ACCESS, null, HttpStatus.OK); } @Test @@ -426,7 +426,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, IOException { /* test */ - export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_RESEARCHER_WRITE_ALL_ACCESS, null, HttpStatus.OK); + export_generic(CONTAINER_2_ID, DATABASE_2_ID, QUERY_1_ID, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2, DATABASE_2_USER_1_WRITE_ALL_ACCESS, null, HttpStatus.OK); } /* ################################################################################################### */ diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/StoreEndpointUnitTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/StoreEndpointUnitTest.java index 7b8e72dded4c4d0155d6868b44752c3ce958feb4..be64aff2a07f66b8f10d6e637a9894765a8c6ff6 100644 --- a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/StoreEndpointUnitTest.java +++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/StoreEndpointUnitTest.java @@ -147,7 +147,7 @@ public class StoreEndpointUnitTest extends BaseUnitTest { /* mock */ when(accessService.find(DATABASE_2_ID, USER_1_USERNAME)) - .thenReturn(DATABASE_1_RESEARCHER_READ_ACCESS); + .thenReturn(DATABASE_1_USER_1_READ_ACCESS); /* test */ findAll_generic(CONTAINER_2_ID, DATABASE_2_ID, DATABASE_2, USER_1_PRINCIPAL); @@ -231,7 +231,7 @@ public class StoreEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ImageNotSupportedException { /* test */ - final QueryDto response = persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + final QueryDto response = persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); assertEquals(QUERY_1_ID, response.getId()); assertEquals(QUERY_1_STATEMENT, response.getQuery()); } @@ -243,7 +243,7 @@ public class StoreEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ImageNotSupportedException { /* test */ - final QueryDto response = persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + final QueryDto response = persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); assertEquals(QUERY_1_ID, response.getId()); assertEquals(QUERY_1_STATEMENT, response.getQuery()); } @@ -255,7 +255,7 @@ public class StoreEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ImageNotSupportedException { /* test */ - final QueryDto response = persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS); + final QueryDto response = persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_1_USERNAME, USER_1, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_ALL_ACCESS); assertEquals(QUERY_1_ID, response.getId()); assertEquals(QUERY_1_STATEMENT, response.getQuery()); } @@ -270,7 +270,7 @@ public class StoreEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_2_USERNAME, USER_2, USER_2_PRINCIPAL, DATABASE_1_DEVELOPER_WRITE_ALL_ACCESS); + persist_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, QUERY_1_ID, QUERY_1, USER_2_USERNAME, USER_2, USER_2_PRINCIPAL, DATABASE_1_USER_2_WRITE_ALL_ACCESS); }); } diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableDataEndpointUnitTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableDataEndpointUnitTest.java index c6820d5653dac61acc871c0734b97d01632bc981..263118e014726c3df8ed4a2c5262617bf555d8d0 100644 --- a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableDataEndpointUnitTest.java +++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableDataEndpointUnitTest.java @@ -96,7 +96,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_import(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_1_ID, TABLE_1, USER_2_USERNAME, - DATABASE_1_RESEARCHER_READ_ACCESS, USER_2_PRINCIPAL); + DATABASE_1_USER_1_READ_ACCESS, USER_2_PRINCIPAL); }); } @@ -107,7 +107,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_import(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_1_ID, TABLE_1, USER_2_USERNAME, - DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS, USER_2_PRINCIPAL); + DATABASE_1_USER_1_WRITE_OWN_ACCESS, USER_2_PRINCIPAL); }); } @@ -128,7 +128,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_import(CONTAINER_2_ID, DATABASE_2_ID, DATABASE_2, TABLE_1_ID, TABLE_1, USER_2_USERNAME, - DATABASE_2_RESEARCHER_READ_ACCESS, USER_2_PRINCIPAL); + DATABASE_2_USER_1_READ_ACCESS, USER_2_PRINCIPAL); }); } @@ -139,7 +139,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_import(CONTAINER_2_ID, DATABASE_2_ID, DATABASE_2, TABLE_1_ID, TABLE_1, USER_2_USERNAME, - DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS, USER_2_PRINCIPAL); + DATABASE_2_USER_1_WRITE_OWN_ACCESS, USER_2_PRINCIPAL); }); } @@ -161,7 +161,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ generic_import(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, TABLE_8_ID, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS, USER_1_PRINCIPAL); + DATABASE_3_USER_1_WRITE_ALL_ACCESS, USER_1_PRINCIPAL); } @Test @@ -172,7 +172,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ generic_import(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_1_ID, TABLE_1, USER_1_USERNAME, - DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS, USER_1_PRINCIPAL); + DATABASE_1_USER_1_WRITE_ALL_ACCESS, USER_1_PRINCIPAL); } @Test @@ -193,7 +193,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_insert(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_2_USERNAME, - DATABASE_1_RESEARCHER_READ_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); + DATABASE_1_USER_1_READ_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); }); } @@ -204,7 +204,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_insert(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_2_USERNAME, - DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); + DATABASE_1_USER_1_WRITE_OWN_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); }); } @@ -226,7 +226,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_insert(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, TABLE_1, USER_2_USERNAME, - DATABASE_2_RESEARCHER_READ_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); + DATABASE_2_USER_1_READ_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); }); } @@ -237,7 +237,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { generic_insert(CONTAINER_2_ID, DATABASE_2_ID, TABLE_1_ID, DATABASE_2, TABLE_1, USER_2_USERNAME, - DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); + DATABASE_2_USER_1_WRITE_OWN_ACCESS, TABLE_1_CSV_DTO, USER_2_PRINCIPAL); }); } @@ -249,7 +249,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ generic_insert(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS, TABLE_8_CSV_DTO, USER_1_PRINCIPAL); + DATABASE_3_USER_1_WRITE_ALL_ACCESS, TABLE_8_CSV_DTO, USER_1_PRINCIPAL); } @Test @@ -260,7 +260,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ generic_insert(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, - DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS, TABLE_1_CSV_DTO, USER_1_PRINCIPAL); + DATABASE_1_USER_1_WRITE_ALL_ACCESS, TABLE_1_CSV_DTO, USER_1_PRINCIPAL); } @Test @@ -271,7 +271,7 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { /* test */ generic_insert(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, - DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS, null, USER_1_PRINCIPAL); + DATABASE_1_USER_1_WRITE_ALL_ACCESS, null, USER_1_PRINCIPAL); } @Test @@ -340,22 +340,22 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_3_USERNAME, authorities = {}) + @WithMockUser(username = USER_4_USERNAME, authorities = {}) public void getAll_privateNoRole_fails() { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_getAll(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_3_USERNAME, DATABASE_1_RESEARCHER_READ_ACCESS, USER_3_PRINCIPAL, null, null, null, null, null); + generic_getAll(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_4_USERNAME, DATABASE_1_USER_1_READ_ACCESS, USER_4_PRINCIPAL, null, null, null, null, null); }); } @Test - @WithMockUser(username = USER_3_USERNAME, authorities = {}) + @WithMockUser(username = USER_4_USERNAME, authorities = {}) public void getCount_privateNoRole_fails() { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_getCount(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_3_USERNAME, DATABASE_1_RESEARCHER_READ_ACCESS, USER_3_PRINCIPAL, null); + generic_getCount(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_4_USERNAME, DATABASE_1_USER_1_READ_ACCESS, USER_4_PRINCIPAL, null); }); } @@ -366,22 +366,22 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { null, null, null, null, null), Arguments.arguments("public read", CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_READ_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), + DATABASE_3_USER_1_READ_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), Arguments.arguments("public write-own", CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), + DATABASE_3_USER_1_WRITE_OWN_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), Arguments.arguments("public write-all", CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), + DATABASE_3_USER_1_WRITE_ALL_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), Arguments.arguments("private read", CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, - DATABASE_1_RESEARCHER_READ_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), + DATABASE_1_USER_1_READ_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), Arguments.arguments("private write-own", CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, - DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), + DATABASE_1_USER_1_WRITE_OWN_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null), Arguments.arguments("private write-all", CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, - DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null) + DATABASE_1_USER_1_WRITE_ALL_ACCESS, USER_1_PRINCIPAL, null, null, null, null, null) ); } @@ -403,22 +403,22 @@ public class TableDataEndpointUnitTest extends BaseUnitTest { TABLE_8, null, null, null, null), Arguments.arguments("public read", CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_READ_ACCESS, USER_1_PRINCIPAL, null), + DATABASE_3_USER_1_READ_ACCESS, USER_1_PRINCIPAL, null), Arguments.arguments("public write-own", CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS, USER_1_PRINCIPAL, null), + DATABASE_3_USER_1_WRITE_OWN_ACCESS, USER_1_PRINCIPAL, null), Arguments.arguments("public write-all", CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, - DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS, USER_1_PRINCIPAL, null), + DATABASE_3_USER_1_WRITE_ALL_ACCESS, USER_1_PRINCIPAL, null), Arguments.arguments("private read", CONTAINER_1_ID, DATABASE_2_ID, TABLE_8_ID, DATABASE_2, TABLE_8, USER_1_USERNAME, - DATABASE_2_RESEARCHER_READ_ACCESS, USER_1_PRINCIPAL, null), + DATABASE_2_USER_1_READ_ACCESS, USER_1_PRINCIPAL, null), Arguments.arguments("private write-own", CONTAINER_1_ID, DATABASE_2_ID, TABLE_8_ID, DATABASE_2, TABLE_8, USER_2_USERNAME, - DATABASE_2_RESEARCHER_WRITE_OWN_ACCESS, USER_2_PRINCIPAL, null), + DATABASE_2_USER_1_WRITE_OWN_ACCESS, USER_2_PRINCIPAL, null), Arguments.arguments("private write-all", CONTAINER_1_ID, DATABASE_2_ID, TABLE_8_ID, DATABASE_2, TABLE_8, USER_2_USERNAME, - DATABASE_2_RESEARCHER_WRITE_ALL_ACCESS, USER_2_PRINCIPAL, null) + DATABASE_2_USER_1_WRITE_ALL_ACCESS, USER_2_PRINCIPAL, null) ); } diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableHistoryEndpointUnitTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableHistoryEndpointUnitTest.java index 30c0da68a79f98b8c7608ee08af22f0fed1af7cb..13f552f6ceedad6061334ca0e87794945c18d034 100644 --- a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableHistoryEndpointUnitTest.java +++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/TableHistoryEndpointUnitTest.java @@ -98,7 +98,7 @@ public class TableHistoryEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException { /* test */ - data_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_1_ID, TABLE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_1_ID, TABLE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); } @Test diff --git a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java index 570de559f4403ce15eea42c32c796c44d2d571af..0d26d44b03017e07172174d1310de7547787ee6a 100644 --- a/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java +++ b/dbrepo-query-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java @@ -100,7 +100,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException { /* test */ - findAll_generic(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3_DEVELOPER_READ_ACCESS); + findAll_generic(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3_USER_2_READ_ACCESS); } @Test @@ -138,7 +138,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - create_generic(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + create_generic(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); }); } @@ -167,7 +167,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ViewNotFoundException { /* test */ - find_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + find_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -176,7 +176,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ViewNotFoundException { /* test */ - find_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + find_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -185,7 +185,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ViewNotFoundException { /* test */ - find_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + find_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -204,7 +204,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - delete_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + delete_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); }); } @@ -214,7 +214,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { - delete_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + delete_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); }); } @@ -225,7 +225,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { QueryMalformedException { /* test */ - delete_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_5_ID, DATABASE_3, USER_3_USERNAME, USER_3_PRINCIPAL, DATABASE_3_RESEARCHER_WRITE_ALL_ACCESS); + delete_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_5_ID, DATABASE_3, USER_3_USERNAME, USER_3_PRINCIPAL, DATABASE_3_USER_1_WRITE_ALL_ACCESS); } @Test @@ -247,7 +247,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, PaginationException, ViewMalformedException { /* test */ - data_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -258,7 +258,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, PaginationException, ViewMalformedException { /* test */ - data_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -269,7 +269,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, PaginationException, ViewMalformedException { /* test */ - data_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_3_ID, DATABASE_3_ID, VIEW_1_ID, DATABASE_3, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } /* ################################################################################################### */ @@ -300,7 +300,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException { /* test */ - findAll_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_1_DEVELOPER_READ_ACCESS); + findAll_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_1_USER_2_READ_ACCESS); } @Test @@ -338,7 +338,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - create_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + create_generic(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); }); } @@ -367,7 +367,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ViewNotFoundException { /* test */ - find_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + find_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -376,7 +376,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ViewNotFoundException { /* test */ - find_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + find_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -385,7 +385,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { DatabaseNotFoundException, ViewNotFoundException { /* test */ - find_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + find_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -404,7 +404,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - delete_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + delete_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); }); } @@ -414,7 +414,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { - delete_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + delete_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); }); } @@ -425,7 +425,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { QueryMalformedException { /* test */ - delete_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_ALL_ACCESS); + delete_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_ALL_ACCESS); } @Test @@ -446,7 +446,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, PaginationException, ViewMalformedException { /* test */ - data_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -457,7 +457,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, PaginationException, ViewMalformedException { /* test */ - data_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } @Test @@ -468,7 +468,7 @@ public class ViewEndpointUnitTest extends BaseUnitTest { ContainerNotFoundException, PaginationException, ViewMalformedException { /* test */ - data_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_RESEARCHER_READ_ACCESS); + data_generic(CONTAINER_1_ID, DATABASE_1_ID, VIEW_1_ID, DATABASE_1, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_2_USER_1_READ_ACCESS); } /* ################################################################################################### */ diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java index 3b9d220e7eff3f0362c860421f4b9f31c5686cb0..78e485fbc2ee5d3d4314464d11e38c67b4f546a3 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java @@ -95,7 +95,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_READ_ACCESS); + generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_READ_ACCESS); }); } @@ -104,7 +104,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { public void update_publicHasRoleHasOwnWriteAccess_succeeds() throws TableNotFoundException, NotAllowedException, TableMalformedException, UnitNotFoundException, DatabaseNotFoundException, ConceptNotFoundException, ContainerNotFoundException { /* test */ - generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, COLUMN_8_2_WITH_SEMANTICS, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, COLUMN_8_2_WITH_SEMANTICS, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_WRITE_OWN_ACCESS); } @Test @@ -113,7 +113,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3_DEVELOPER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3_USER_2_WRITE_OWN_ACCESS); }); } @@ -123,7 +123,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, null, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, null, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_WRITE_OWN_ACCESS); }); } @@ -133,7 +133,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(TableNotFoundException.class, () -> { - generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, null, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, null, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_WRITE_OWN_ACCESS); }); } @@ -144,7 +144,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { ConceptNotFoundException, ContainerNotFoundException { /* test */ - generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, COLUMN_8_2_WITH_SEMANTICS, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3_DEVELOPER_WRITE_ALL_ACCESS); + generic_update(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, COLUMN_8_2_WITH_SEMANTICS, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_3_USER_2_WRITE_ALL_ACCESS); } /* ################################################################################################### */ @@ -177,7 +177,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -186,7 +186,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { public void update_privateHasRoleHasOwnWriteAccess_succeeds() throws TableNotFoundException, NotAllowedException, TableMalformedException, UnitNotFoundException, DatabaseNotFoundException, ConceptNotFoundException, ContainerNotFoundException { /* test */ - generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, COLUMN_1_4_WITH_SEMANTICS, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, COLUMN_1_4_WITH_SEMANTICS, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); } @Test @@ -195,7 +195,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_1_DEVELOPER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_1_USER_2_WRITE_OWN_ACCESS); }); } @@ -205,7 +205,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, null, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, null, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); }); } @@ -215,7 +215,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(TableNotFoundException.class, () -> { - generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, null, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, null, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); }); } @@ -226,7 +226,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { ConceptNotFoundException, ContainerNotFoundException { /* test */ - generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, COLUMN_1_4_WITH_SEMANTICS, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_1_DEVELOPER_WRITE_ALL_ACCESS); + generic_update(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, COLUMN_1_4_WITH_SEMANTICS, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_2_USERNAME, USER_2_PRINCIPAL, DATABASE_1_USER_2_WRITE_ALL_ACCESS); } /* ################################################################################################### */ diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java index 2d473bd693228c5bf1b17f308523bc11dc1a0964..5df092b16f2428901cd127d968d8c993491d9b01 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java @@ -98,7 +98,7 @@ public class TableEndpointIntegrationTest extends BaseUnitTest { /* mock */ DockerConfig.createContainer(null, CONTAINER_1, CONTAINER_1_ENV); DockerConfig.startContainer(CONTAINER_1); - accessRepository.save(DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + accessRepository.save(DATABASE_1_USER_1_WRITE_OWN_ACCESS); /* test */ tableEndpoint.create(CONTAINER_1_ID, DATABASE_1_ID, TABLE_3_CREATE_DTO, USER_1_PRINCIPAL); diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java index f99b308dd262ebfbac3a4a97f2fee56c2a757199..b2671aa828af6d5844f50fbca66c4a27c6707e67 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java @@ -92,7 +92,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_list(CONTAINER_3_ID, DATABASE_3_ID, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_READ_ACCESS); + generic_list(CONTAINER_3_ID, DATABASE_3_ID, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_READ_ACCESS); }); } @@ -101,7 +101,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void list_publicHasRole_succeeds() throws DatabaseNotFoundException, NotAllowedException { /* test */ - final ResponseEntity<List<TableBriefDto>> response = generic_list(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + final ResponseEntity<List<TableBriefDto>> response = generic_list(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); assertEquals(HttpStatus.OK, response.getStatusCode()); final List<TableBriefDto> body = response.getBody(); assertNotNull(body); @@ -132,7 +132,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_create(CONTAINER_3_ID, DATABASE_3_ID, null, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS); + generic_create(CONTAINER_3_ID, DATABASE_3_ID, null, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_WRITE_OWN_ACCESS); }); } @@ -152,7 +152,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - generic_create(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_WRITE_OWN_ACCESS); + generic_create(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_WRITE_OWN_ACCESS); }); } @@ -162,7 +162,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_create(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_RESEARCHER_READ_ACCESS); + generic_create(CONTAINER_3_ID, DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_3_USER_1_READ_ACCESS); }); } @@ -180,7 +180,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(TableNotFoundException.class, () -> { - generic_findById(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_findById(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -190,7 +190,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_findById(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, null, TABLE_8, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_findById(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, null, TABLE_8, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -199,7 +199,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void findById_publicHasRole_succeeds() throws DatabaseNotFoundException, NotAllowedException, UserNotFoundException, TableNotFoundException, TableMalformedException, QueryMalformedException, ImageNotSupportedException, AmqpException, TableNameExistsException, ContainerNotFoundException { /* test */ - final ResponseEntity<TableDto> response = generic_findById(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + final ResponseEntity<TableDto> response = generic_findById(CONTAINER_3_ID, DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); assertEquals(HttpStatus.OK, response.getStatusCode()); final TableDto body = response.getBody(); assertNotNull(body); @@ -282,7 +282,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_list(CONTAINER_1_ID, DATABASE_1_ID, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_list(CONTAINER_1_ID, DATABASE_1_ID, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -291,7 +291,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void list_privateHasRole_succeeds() throws DatabaseNotFoundException, NotAllowedException { /* test */ - final ResponseEntity<List<TableBriefDto>> response = generic_list(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + final ResponseEntity<List<TableBriefDto>> response = generic_list(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); assertEquals(HttpStatus.OK, response.getStatusCode()); final List<TableBriefDto> body = response.getBody(); assertNotNull(body); @@ -324,7 +324,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, null, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, null, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); }); } @@ -344,7 +344,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_WRITE_OWN_ACCESS); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); }); } @@ -354,7 +354,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(NotAllowedException.class, () -> { - generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_create(CONTAINER_1_ID, DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -374,7 +374,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(TableNotFoundException.class, () -> { - generic_findById(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_findById(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, null, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -384,7 +384,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(DatabaseNotFoundException.class, () -> { - generic_findById(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, null, TABLE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + generic_findById(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, null, TABLE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); }); } @@ -393,7 +393,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void findById_privateHasRole_succeeds() throws DatabaseNotFoundException, NotAllowedException, UserNotFoundException, TableNotFoundException, TableMalformedException, QueryMalformedException, ImageNotSupportedException, AmqpException, TableNameExistsException, ContainerNotFoundException { /* test */ - final ResponseEntity<TableDto> response = generic_findById(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_RESEARCHER_READ_ACCESS); + final ResponseEntity<TableDto> response = generic_findById(CONTAINER_1_ID, DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, USER_1_USERNAME, USER_1_PRINCIPAL, DATABASE_1_USER_1_READ_ACCESS); assertEquals(HttpStatus.OK, response.getStatusCode()); final TableDto body = response.getBody(); assertNotNull(body); diff --git a/dbrepo-user-service/pom.xml b/dbrepo-user-service/pom.xml index 471c9323648323786875b697a08aa3402f29e778..771332a592e7639c9b81d897066b83d2c4ddbae0 100644 --- a/dbrepo-user-service/pom.xml +++ b/dbrepo-user-service/pom.xml @@ -88,11 +88,6 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-test</artifactId> - <scope>test</scope> - </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> @@ -165,6 +160,11 @@ <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-test</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> diff --git a/dbrepo-user-service/rest-service/src/main/java/at/tuwien/endpoint/UserEndpoint.java b/dbrepo-user-service/rest-service/src/main/java/at/tuwien/endpoint/UserEndpoint.java index 3bdd01e898403c563ae0928004ea34c248c441ea..b2aa2e79ac5c1a350b8815c85c3e07719b88f2cb 100644 --- a/dbrepo-user-service/rest-service/src/main/java/at/tuwien/endpoint/UserEndpoint.java +++ b/dbrepo-user-service/rest-service/src/main/java/at/tuwien/endpoint/UserEndpoint.java @@ -1,6 +1,8 @@ package at.tuwien.endpoint; import at.tuwien.api.auth.SignupRequestDto; +import at.tuwien.api.container.ContainerBriefDto; +import at.tuwien.api.error.ApiErrorDto; import at.tuwien.api.user.*; import at.tuwien.config.AuthenticationConfig; import at.tuwien.entities.user.Realm; @@ -13,6 +15,10 @@ import at.tuwien.service.RoleService; import at.tuwien.service.UserService; import io.micrometer.core.annotation.Timed; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; @@ -55,6 +61,13 @@ public class UserEndpoint { @Transactional(readOnly = true) @Timed(value = "user.list", description = "Time needed to list all users in the metadata database") @Operation(summary = "Find all users") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", + description = "List users", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = UserBriefDto[].class))}), + }) public ResponseEntity<List<UserBriefDto>> findAll() { log.debug("endpoint find all users"); final List<UserBriefDto> users = userService.findAll() @@ -70,9 +83,31 @@ public class UserEndpoint { @PreAuthorize("!isAuthenticated()") @Timed(value = "user.create", description = "Time needed to create a user in the metadata database") @Operation(summary = "Create user") + @ApiResponses(value = { + @ApiResponse(responseCode = "201", + description = "Created user", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = UserBriefDto.class))}), + @ApiResponse(responseCode = "404", + description = "Realm or default role not found", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + @ApiResponse(responseCode = "409", + description = "User with username already exists", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + @ApiResponse(responseCode = "417", + description = "User with e-mail already exists", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + }) public ResponseEntity<UserBriefDto> create(@NotNull @Valid @RequestBody SignupRequestDto data) - throws UserNotFoundException, RemoteUnavailableException, RealmNotFoundException, - UserAlreadyExistsException, RoleNotFoundException, UserEmailAlreadyExistsException { + throws RealmNotFoundException, UserAlreadyExistsException, RoleNotFoundException, + UserEmailAlreadyExistsException { log.debug("endpoint create a user, data={}", data); /* check */ final Realm realm = realmService.find("dbrepo"); @@ -92,6 +127,23 @@ public class UserEndpoint { @PreAuthorize("isAuthenticated() or hasAuthority('find-user')") @Timed(value = "user.info", description = "Time needed to get information of a user in the metadata database") @Operation(summary = "Get a user info", security = @SecurityRequirement(name = "bearerAuth")) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", + description = "Found user", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = UserDto.class))}), + @ApiResponse(responseCode = "404", + description = "User was not found", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + @ApiResponse(responseCode = "405", + description = "Find user is not permitted", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + }) public ResponseEntity<UserDto> find(@NotNull @PathVariable("id") String id, @NotNull Principal principal) throws UserNotFoundException, NotAllowedException { @@ -117,6 +169,23 @@ public class UserEndpoint { @PreAuthorize("hasAuthority('modify-user-information')") @Timed(value = "user.modify", description = "Time needed to modify a user in the metadata database") @Operation(summary = "Modify user information", security = @SecurityRequirement(name = "bearerAuth")) + @ApiResponses(value = { + @ApiResponse(responseCode = "202", + description = "Modified user information", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = UserDto.class))}), + @ApiResponse(responseCode = "404", + description = "User attribute was not found", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + @ApiResponse(responseCode = "405", + description = "Modify user is not permitted", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + }) public ResponseEntity<UserDto> modify(@NotNull @PathVariable("id") String id, @NotNull @Valid @RequestBody UserUpdateDto data, @NotNull Principal principal) @@ -140,6 +209,23 @@ public class UserEndpoint { @PreAuthorize("hasAuthority('modify-user-theme')") @Timed(value = "user.theme", description = "Time needed to modify a user theme in the metadata database") @Operation(summary = "Modify user theme", security = @SecurityRequirement(name = "bearerAuth")) + @ApiResponses(value = { + @ApiResponse(responseCode = "202", + description = "Modified user theme", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = UserDto.class))}), + @ApiResponse(responseCode = "404", + description = "User or user attribute was not found", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + @ApiResponse(responseCode = "405", + description = "Modify user is not permitted", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + }) public ResponseEntity<UserDto> theme(@NotNull @PathVariable("id") String id, @NotNull @Valid @RequestBody UserThemeSetDto data, @NotNull Principal principal) @@ -163,6 +249,23 @@ public class UserEndpoint { @PreAuthorize("isAuthenticated()") @Timed(value = "user.password", description = "Time needed to modify a user password in the metadata database") @Operation(summary = "Modify user password", security = @SecurityRequirement(name = "bearerAuth")) + @ApiResponses(value = { + @ApiResponse(responseCode = "202", + description = "Modified user password", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = UserDto.class))}), + @ApiResponse(responseCode = "404", + description = "User was not found", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + @ApiResponse(responseCode = "405", + description = "Modify user is not permitted", + content = {@Content( + mediaType = "application/json", + schema = @Schema(implementation = ApiErrorDto.class))}), + }) public ResponseEntity<UserDto> password(@NotNull @PathVariable("id") String id, @NotNull @Valid @RequestBody UserPasswordDto data, @NotNull Principal principal) diff --git a/dbrepo-user-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java b/dbrepo-user-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java index c4f7c69f64bfcc65bcedf508f16cccb09ab4edf4..78639cb60da78bc6b43743d957068c4d852d440b 100644 --- a/dbrepo-user-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java +++ b/dbrepo-user-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java @@ -2,6 +2,7 @@ package at.tuwien.handlers; import at.tuwien.api.error.ApiErrorDto; import at.tuwien.exception.*; +import io.swagger.v3.oas.annotations.Hidden; import net.sf.jsqlparser.JSQLParserException; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -15,6 +16,7 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExcep @ControllerAdvice public class ApiExceptionHandler extends ResponseEntityExceptionHandler { + @Hidden @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) @ExceptionHandler(ForeignUserException.class) public ResponseEntity<ApiErrorDto> handle(ForeignUserException e, WebRequest request) { @@ -26,6 +28,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) @ExceptionHandler(NotAllowedException.class) public ResponseEntity<ApiErrorDto> handle(NotAllowedException e, WebRequest request) { @@ -37,6 +40,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.NOT_FOUND) @ExceptionHandler(RealmNotFoundException.class) public ResponseEntity<ApiErrorDto> handle(RealmNotFoundException e, WebRequest request) { @@ -48,6 +52,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.NO_CONTENT) @ExceptionHandler(RemoteUnavailableException.class) public ResponseEntity<ApiErrorDto> handle(RemoteUnavailableException e, WebRequest request) { @@ -59,6 +64,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.NOT_FOUND) @ExceptionHandler(RoleNotFoundException.class) public ResponseEntity<ApiErrorDto> handle(RoleNotFoundException e, WebRequest request) { @@ -70,6 +76,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.CONFLICT) @ExceptionHandler(UserAlreadyExistsException.class) public ResponseEntity<ApiErrorDto> handle(UserAlreadyExistsException e, WebRequest request) { @@ -81,6 +88,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.NOT_FOUND) @ExceptionHandler(UserAttributeNotFoundException.class) public ResponseEntity<ApiErrorDto> handle(UserAttributeNotFoundException e, WebRequest request) { @@ -92,6 +100,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.EXPECTATION_FAILED) @ExceptionHandler(UserEmailAlreadyExistsException.class) public ResponseEntity<ApiErrorDto> handle(UserEmailAlreadyExistsException e, WebRequest request) { @@ -103,6 +112,7 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden @ResponseStatus(HttpStatus.NOT_FOUND) @ExceptionHandler(UserNotFoundException.class) public ResponseEntity<ApiErrorDto> handle(UserNotFoundException e, WebRequest request) { diff --git a/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/UserEndpointUnitTest.java b/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/UserEndpointUnitTest.java index df7a391957fe6cc8d33c21d76aa808dbe21b3bcc..cec34bf0a50ad3b66641cbefc877a1fcd58d8854 100644 --- a/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/UserEndpointUnitTest.java +++ b/dbrepo-user-service/rest-service/src/test/java/at/tuwien/endpoint/UserEndpointUnitTest.java @@ -165,12 +165,12 @@ public class UserEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_4_USERNAME, authorities = {"find-user"}) + @WithMockUser(username = USER_3_USERNAME, authorities = {"find-user"}) public void find_hasRoleForeign_succeeds() { /* test */ assertThrows(NotAllowedException.class, () -> { - find_generic(USER_2_ID.toString(), USER_2, USER_4_PRINCIPAL); + find_generic(USER_2_ID.toString(), USER_2, USER_3_PRINCIPAL); }); } @@ -191,7 +191,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void modify_noRole_fails() { final UserUpdateDto request = UserUpdateDto.builder() .firstname(USER_1_FIRSTNAME) @@ -202,7 +202,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { - modify_generic(USER_1_ID.toString(), USER_1, USER_1_PRINCIPAL, request); + modify_generic(USER_1_ID.toString(), USER_1, USER_4_PRINCIPAL, request); }); } @@ -250,7 +250,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_1_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void theme_noRole_fails() { final UserThemeSetDto request = UserThemeSetDto.builder() .themeDark(USER_1_THEME_DARK) @@ -258,7 +258,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(AccessDeniedException.class, () -> { - theme_generic(USER_1_ID.toString(), USER_1, USER_1_PRINCIPAL, request); + theme_generic(USER_4_ID.toString(), USER_4, USER_4_PRINCIPAL, request); }); } @@ -300,7 +300,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { } @Test - @WithMockUser(username = USER_2_USERNAME) + @WithMockUser(username = USER_4_USERNAME) public void password_noRoleForeign_fails() { final UserPasswordDto request = UserPasswordDto.builder() .password(USER_1_PASSWORD) @@ -308,7 +308,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { /* test */ assertThrows(ForeignUserException.class, () -> { - password_generic(USER_1_ID.toString(), USER_1, USER_2_PRINCIPAL, request); + password_generic(USER_1_ID.toString(), USER_1, USER_4_PRINCIPAL, request); }); }