diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java index b8010ddf7..77f243d7b 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java @@ -11,12 +11,8 @@ import it.pagopa.selfcare.dashboard.connector.model.product.mapper.ProductMapper; import it.pagopa.selfcare.dashboard.connector.model.user.*; import it.pagopa.selfcare.dashboard.core.exception.InvalidOnboardingStatusException; -import it.pagopa.selfcare.dashboard.core.exception.InvalidProductRoleException; import it.pagopa.selfcare.onboarding.common.PartyRole; -import it.pagopa.selfcare.product.entity.PHASE_ADDITION_ALLOWED; import it.pagopa.selfcare.product.entity.Product; -import it.pagopa.selfcare.product.entity.ProductRoleInfo; -import it.pagopa.selfcare.product.utils.ProductUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -171,27 +167,14 @@ private Institution verifyOnboardingStatus(String institutionId, String productI * It maps each product role to a CreateUserDto.Role object, which includes the label and party role. * To retrieve the party role, it uses the roleMappings of the product filtering by a white list of party roles (Only SUB_DELEGATE and OPERATOR are allowed * as Role to be assigned to a user in add Users ProductRoles operation). - * If the party role is not valid, it throws an InvalidProductRoleException. */ private List retrieveRole(String productId, Set productRoles, PartyRole partyRole) { Product product = productsConnector.getProduct(productId); return productRoles.stream().map(productRole -> { - CreateUserDto.Role role = new CreateUserDto.Role(); role.setProductRole(productRole); - role.setLabel(ProductMapper.getLabel(productRole, product.getRoleMappings(null)).orElse(null)); - - //TODO: https://pagopa.atlassian.net/browse/SELC-5757 - if(Objects.isNull(partyRole)){ - List partyRoles = ProductUtils.validRolesByProductRole(product, PHASE_ADDITION_ALLOWED.DASHBOARD, productRole, null); - if(Objects.isNull(partyRoles) || partyRoles.isEmpty()){ - throw new InvalidProductRoleException(String.format("Product role '%s' is not valid", productRole)); - } - role.setPartyRole(partyRoles.get(0)); - } else{ - role.setPartyRole(partyRole); - } + role.setPartyRole(partyRole); return role; }).toList(); } diff --git a/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java b/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java index db5a899e3..e1f6815d4 100644 --- a/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java +++ b/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java @@ -11,7 +11,6 @@ import it.pagopa.selfcare.dashboard.connector.model.institution.RelationshipState; import it.pagopa.selfcare.dashboard.connector.model.user.*; import it.pagopa.selfcare.dashboard.core.exception.InvalidOnboardingStatusException; -import it.pagopa.selfcare.dashboard.core.exception.InvalidProductRoleException; import it.pagopa.selfcare.onboarding.common.PartyRole; import it.pagopa.selfcare.product.entity.PHASE_ADDITION_ALLOWED; import it.pagopa.selfcare.product.entity.Product; @@ -34,12 +33,11 @@ import java.util.*; import static it.pagopa.selfcare.commons.utils.TestUtils.mockInstance; +import static it.pagopa.selfcare.onboarding.common.PartyRole.MANAGER; +import static it.pagopa.selfcare.onboarding.common.PartyRole.OPERATOR; import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; -import static org.mockito.Mockito.verifyNoMoreInteractions; @ExtendWith(MockitoExtension.class) public class UserV2ServiceImplTest extends BaseServiceTest { @@ -337,13 +335,13 @@ void addUserProductRoles_ok_withoutPartyRole() { CreateUserDto.Role roleDto = new CreateUserDto.Role(); roleDto.setProductRole("operator"); roleDto.setLabel("operator"); - roleDto.setPartyRole(PartyRole.OPERATOR); + roleDto.setPartyRole(OPERATOR); when(msCoreConnectorMock.getInstitution(institutionId)).thenReturn(institution); when(productsConnectorMock.getProduct(productId)).thenReturn(product); doNothing().when(userApiConnectorMock).createOrUpdateUserByUserId(institution, productId, userId, List.of(roleDto)); - userV2ServiceImpl.addUserProductRoles(institutionId, productId, userId, productRoles, null); + userV2ServiceImpl.addUserProductRoles(institutionId, productId, userId, productRoles, OPERATOR.name()); verify(userApiConnectorMock, times(1)) .createOrUpdateUserByUserId(institution, productId, userId, List.of(roleDto)); @@ -376,6 +374,7 @@ void createUsersByFiscalCode() { UserToCreate userToCreate = new UserToCreate(); HashSet productRoles = new HashSet<>(); productRoles.add(productRole); + userToCreate.setRole(PartyRole.MANAGER); userToCreate.setProductRoles(productRoles); Product product = getProduct(); @@ -390,7 +389,7 @@ void createUsersByFiscalCode() { CreateUserDto.Role roleDto = new CreateUserDto.Role(); roleDto.setProductRole("operator"); roleDto.setLabel("operator"); - roleDto.setPartyRole(PartyRole.OPERATOR); + roleDto.setPartyRole(MANAGER); when(productsConnectorMock.getProduct(productId)).thenReturn(product); @@ -481,7 +480,7 @@ private static Product getProduct() { productRole.setCode("operator"); productRole.setLabel("operator"); productRoleInfoOperator.setRoles(List.of(productRole)); - map.put(PartyRole.OPERATOR, productRoleInfoOperator); + map.put(OPERATOR, productRoleInfoOperator); ProductRoleInfo productRoleInfoDelegate= new ProductRoleInfo(); productRoleInfoDelegate.setPhasesAdditionAllowed(List.of(PHASE_ADDITION_ALLOWED.DASHBOARD.value));