diff --git a/apps/user-ms/src/main/java/it/pagopa/selfcare/user/service/UserServiceImpl.java b/apps/user-ms/src/main/java/it/pagopa/selfcare/user/service/UserServiceImpl.java index 1deb8518..5b0d7d7f 100644 --- a/apps/user-ms/src/main/java/it/pagopa/selfcare/user/service/UserServiceImpl.java +++ b/apps/user-ms/src/main/java/it/pagopa/selfcare/user/service/UserServiceImpl.java @@ -729,6 +729,7 @@ private List filterProductAndAddActions(UserInstitu return userInstitutionWithActions.getProducts().stream() .filter(onboardedProductWithActions -> ACTIVE.equals(onboardedProductWithActions.getStatus())) .filter(onboardedProductWithActions -> Objects.isNull(productId) || productId.equalsIgnoreCase(onboardedProductWithActions.getProductId())) + .filter(onboardedProductWithActions -> StringUtils.isNotBlank(onboardedProductWithActions.getRole())) .peek(onboardedProductWithActions -> onboardedProductWithActions.setUserProductActions(actionMapRetriever.getUserActionsMap().get(onboardedProductWithActions.getRole()))) .toList(); } diff --git a/apps/user-ms/src/main/java/it/pagopa/selfcare/user/util/ActionMapRetriever.java b/apps/user-ms/src/main/java/it/pagopa/selfcare/user/util/ActionMapRetriever.java index 01825e10..aeb41360 100644 --- a/apps/user-ms/src/main/java/it/pagopa/selfcare/user/util/ActionMapRetriever.java +++ b/apps/user-ms/src/main/java/it/pagopa/selfcare/user/util/ActionMapRetriever.java @@ -19,14 +19,14 @@ @Startup public class ActionMapRetriever { - private Map> userActionsMap; + private Map> userActionsMap; private static final String ACTIONS_FILE_PATH = "role_action_mapping.json"; public ActionMapRetriever() { this.userActionsMap = retrieveActionsMap(); } - private Map> retrieveActionsMap() { + private Map> retrieveActionsMap() { try (InputStream actionsFile = getClass().getClassLoader().getResourceAsStream(ACTIONS_FILE_PATH)) { assert actionsFile != null; byte[] jsonFile = actionsFile.readAllBytes(); diff --git a/apps/user-ms/src/test/java/it/pagopa/selfcare/user/service/UserServiceTest.java b/apps/user-ms/src/test/java/it/pagopa/selfcare/user/service/UserServiceTest.java index b83c6cbf..130475ee 100644 --- a/apps/user-ms/src/test/java/it/pagopa/selfcare/user/service/UserServiceTest.java +++ b/apps/user-ms/src/test/java/it/pagopa/selfcare/user/service/UserServiceTest.java @@ -18,10 +18,8 @@ import it.pagopa.selfcare.user.controller.request.AddUserRoleDto; import it.pagopa.selfcare.user.controller.request.CreateUserDto; import it.pagopa.selfcare.user.controller.request.UpdateDescriptionDto; -import it.pagopa.selfcare.user.controller.response.UserDataResponse; -import it.pagopa.selfcare.user.controller.response.UserDetailResponse; -import it.pagopa.selfcare.user.controller.response.UserInstitutionResponse; -import it.pagopa.selfcare.user.controller.response.UserProductResponse; +import it.pagopa.selfcare.user.controller.response.*; +import it.pagopa.selfcare.user.controller.response.product.OnboardedProductWithActions; import it.pagopa.selfcare.user.entity.UserInfo; import it.pagopa.selfcare.user.entity.UserInstitution; import it.pagopa.selfcare.user.entity.UserInstitutionRole; @@ -1370,12 +1368,42 @@ void testGetUserInstitutionWithPermissionQueryWithoutProductId() { userService.getUserInstitutionWithPermission(userId, institutionId, null) .subscribe() - .withSubscriber(UniAssertSubscriber.create()).assertCompleted(); + .withSubscriber(UniAssertSubscriber.create()) + .assertItem(getUserInstitutionWithAction()) + .assertCompleted(); verify(userInstitutionService).retrieveFirstFilteredUserInstitution(queryParameter); } + private UserInstitutionWithActions getUserInstitutionWithAction() { + UserInstitutionWithActions userInstitutionWithActions = new UserInstitutionWithActions(); + OnboardedProductWithActions product = new OnboardedProductWithActions(); + product.setRole(MANAGER.name()); + product.setProductId("test"); + product.setProductRole("admin"); + product.setStatus(ACTIVE); + product.setUserProductActions(List.of("Selc:UploadLogo", + "Selc:ViewBilling", + "Selc:RequestProductAccess", + "Selc:ListAvailableProducts", + "Selc:ListActiveProducts", + "Selc:AccessProductBackoffice", + "Selc:ViewManagedInstitutions", + "Selc:ViewDelegations", + "Selc:ManageProductUsers", + "Selc:ManageProductGroups", + "Selc:CreateDelegation", + "Selc:ViewInstitutionData", + "Selc:UpdateInstitutionData")); + userInstitutionWithActions.setInstitutionRootName("institutionRootName"); + userInstitutionWithActions.setUserMailUuid(workContractsKey); + userInstitutionWithActions.setInstitutionId("institutionId"); + userInstitutionWithActions.setUserId(userId.toString()); + userInstitutionWithActions.setProducts(List.of(product)); + return userInstitutionWithActions; + } + @Test void testGetUserInstitutionWithPermissionQueryWithProductId() { String productId = "productId"; diff --git a/apps/user-ms/src/test/java/it/pagopa/selfcare/user/util/ActionMapRetrieverTest.java b/apps/user-ms/src/test/java/it/pagopa/selfcare/user/util/ActionMapRetrieverTest.java index 6243eb4d..a0af1d79 100644 --- a/apps/user-ms/src/test/java/it/pagopa/selfcare/user/util/ActionMapRetrieverTest.java +++ b/apps/user-ms/src/test/java/it/pagopa/selfcare/user/util/ActionMapRetrieverTest.java @@ -15,11 +15,11 @@ void retrieveActionsMap_returnsCorrectActionsMap() { // Then assertNotNull(actionMapRetriever.getUserActionsMap()); assertEquals(5, actionMapRetriever.getUserActionsMap().size()); - assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.MANAGER)); - assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.DELEGATE)); - assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.ADMIN_EA)); - assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.SUB_DELEGATE)); - assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.OPERATOR)); + assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.MANAGER.name())); + assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.DELEGATE.name())); + assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.ADMIN_EA.name())); + assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.SUB_DELEGATE.name())); + assertTrue(actionMapRetriever.getUserActionsMap().containsKey(PartyRole.OPERATOR.name())); } }