Skip to content

Commit

Permalink
[SELC-5594] fix filterProductAndAddActions method (#194)
Browse files Browse the repository at this point in the history
  • Loading branch information
flaminiaScarciofolo authored Sep 30, 2024
1 parent 29f5f3d commit 1fe438e
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,7 @@ private List<OnboardedProductWithActions> 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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
@Startup
public class ActionMapRetriever {

private Map<PartyRole, List<String>> userActionsMap;
private Map<String, List<String>> userActionsMap;
private static final String ACTIONS_FILE_PATH = "role_action_mapping.json";

public ActionMapRetriever() {
this.userActionsMap = retrieveActionsMap();
}

private Map<PartyRole, List<String>> retrieveActionsMap() {
private Map<String, List<String>> retrieveActionsMap() {
try (InputStream actionsFile = getClass().getClassLoader().getResourceAsStream(ACTIONS_FILE_PATH)) {
assert actionsFile != null;
byte[] jsonFile = actionsFile.readAllBytes();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()));

}
}

0 comments on commit 1fe438e

Please sign in to comment.