Created beneficiary and associated with user
This commit is contained in:
@@ -133,8 +133,8 @@ public Saml2AuthenticationRequestResolver authenticationRequestResolver(RelyingP
|
|||||||
authnRequest.setRequestedAuthnContext(buildRequestedAuthnContext());
|
authnRequest.setRequestedAuthnContext(buildRequestedAuthnContext());
|
||||||
|
|
||||||
// Log the SAML AuthnRequest after setting context
|
// Log the SAML AuthnRequest after setting context
|
||||||
String samlRequest = SamlRequestLogger.convertSAMLObjectToString(authnRequest);
|
// String samlRequest = SamlRequestLogger.convertSAMLObjectToString(authnRequest);
|
||||||
logger.info("SAML AuthnRequest after setting context: " + samlRequest);
|
logger.info("SAML Authentication Request.");
|
||||||
});
|
});
|
||||||
|
|
||||||
return authenticationRequestResolver;
|
return authenticationRequestResolver;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class SamlSuccessHandler implements AuthenticationSuccessHandler {
|
|||||||
|
|
||||||
logger.info("SAML login successful for user: " + principal.getName());
|
logger.info("SAML login successful for user: " + principal.getName());
|
||||||
String cf = userAttributes.get("CodiceFiscale").get(0).toString();
|
String cf = userAttributes.get("CodiceFiscale").get(0).toString();
|
||||||
UserEntity userEntity = userRepository.findByCodiceFiscale(cf).orElse(null);
|
UserEntity userEntity = userRepository.findByBeneficiaryCodiceFiscale(cf).orElse(null);
|
||||||
if (userEntity == null) {
|
if (userEntity == null) {
|
||||||
redirectUrl += "/registration?temp_token=" + token;
|
redirectUrl += "/registration?temp_token=" + token;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.BeneficiaryEntity;
|
||||||
import net.gepafin.tendermanagement.entities.RoleEntity;
|
import net.gepafin.tendermanagement.entities.RoleEntity;
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
|
import net.gepafin.tendermanagement.enums.RoleStatusEnum;
|
||||||
@@ -13,6 +14,7 @@ import net.gepafin.tendermanagement.model.response.RoleResponseBean;
|
|||||||
import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
import net.gepafin.tendermanagement.model.response.UserSamlResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.UserResponseBean;
|
import net.gepafin.tendermanagement.model.response.UserResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.JWTToken;
|
import net.gepafin.tendermanagement.model.util.JWTToken;
|
||||||
|
import net.gepafin.tendermanagement.repositories.BeneficiaryRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.UserRepository;
|
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||||
import net.gepafin.tendermanagement.service.impl.AuthenticationService;
|
import net.gepafin.tendermanagement.service.impl.AuthenticationService;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
@@ -47,9 +49,41 @@ public class UserDao {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RoleDao roleDao;
|
private RoleDao roleDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BeneficiaryRepository beneficiaryRepository;
|
||||||
|
|
||||||
|
|
||||||
public JWTToken createUser(HttpServletRequest request, String tempToken, UserReq userReq) {
|
public JWTToken createUser(HttpServletRequest request, String tempToken, UserReq userReq) {
|
||||||
|
validateUserRequest(tempToken, userReq);
|
||||||
|
validatePassword(userReq.getPassword(), userReq.getConfPassword(), tempToken);
|
||||||
|
|
||||||
|
RoleEntity roleEntity = getRoleEntity(userReq.getRoleId());
|
||||||
|
BeneficiaryEntity beneficiary = createBeneficiary(roleEntity, userReq);
|
||||||
|
UserEntity userEntity = convertUserRequestToUserEntity(beneficiary, roleEntity, userReq);
|
||||||
|
log.info("User created with ID: {}", userEntity.getId());
|
||||||
|
return authService.getJWTTokenBean(userEntity, Boolean.TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private BeneficiaryEntity createBeneficiary(RoleEntity roleEntity, UserReq userReq) {
|
||||||
|
BeneficiaryEntity beneficiaryEntity = null;
|
||||||
|
if (RoleStatusEnum.ROLE_BENEFICIARY.getValue().equals(roleEntity.getRoleType())) {
|
||||||
|
beneficiaryEntity = new BeneficiaryEntity();
|
||||||
|
beneficiaryEntity.setAddress(userReq.getAddress());
|
||||||
|
beneficiaryEntity.setCity(userReq.getCity());
|
||||||
|
beneficiaryEntity.setCodiceFiscale(userReq.getCodiceFiscale());
|
||||||
|
beneficiaryEntity.setCountry(userReq.getCountry());
|
||||||
|
beneficiaryEntity.setDateOfBirth(userReq.getDateOfBirth());
|
||||||
|
beneficiaryEntity.setEmail(userReq.getEmail());
|
||||||
|
beneficiaryEntity.setFirstName(userReq.getFirstName());
|
||||||
|
beneficiaryEntity.setLastName(userReq.getLastName());
|
||||||
|
beneficiaryEntity.setOrganization(userReq.getOrganization());
|
||||||
|
beneficiaryEntity.setPhoneNumber(userReq.getPhoneNumber());
|
||||||
|
}
|
||||||
|
return beneficiaryRepository.save(beneficiaryEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateUserRequest(String tempToken, UserReq userReq) {
|
||||||
if (Boolean.FALSE.equals(isValidEmail(userReq.getEmail()))) {
|
if (Boolean.FALSE.equals(isValidEmail(userReq.getEmail()))) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||||
Translator.toLocale(GepafinConstant.VALIDATE_EMAIL));
|
Translator.toLocale(GepafinConstant.VALIDATE_EMAIL));
|
||||||
@@ -61,27 +95,21 @@ public class UserDao {
|
|||||||
Translator.toLocale(GepafinConstant.EMAIL_ALREADY_EXISTS));
|
Translator.toLocale(GepafinConstant.EMAIL_ALREADY_EXISTS));
|
||||||
}
|
}
|
||||||
if (Boolean.FALSE.equals(StringUtils.isEmpty(userReq.getCodiceFiscale()))
|
if (Boolean.FALSE.equals(StringUtils.isEmpty(userReq.getCodiceFiscale()))
|
||||||
&& userRepository.existsByCodiceFiscale(userReq.getCodiceFiscale())) {
|
&& userRepository.existsByBeneficiaryCodiceFiscale(userReq.getCodiceFiscale())) {
|
||||||
log.error("User creation failed: CodiceFiscale {} already exists", userReq.getCodiceFiscale());
|
log.error("User creation failed: CodiceFiscale {} already exists", userReq.getCodiceFiscale());
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||||
Translator.toLocale(GepafinConstant.CODICE_FISCALE_EXISTS));
|
Translator.toLocale(GepafinConstant.CODICE_FISCALE_EXISTS));
|
||||||
}
|
}
|
||||||
if (tempToken == null && userReq.getRoleId() == null) {
|
if (tempToken == null && userReq.getRoleId() == null) {
|
||||||
throw new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
throw new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
||||||
Translator.toLocale(GepafinConstant.ROLE_ID_MANDATORY));
|
Translator.toLocale(GepafinConstant.ROLE_ID_MANDATORY));
|
||||||
}
|
}
|
||||||
if(tempToken != null) {
|
if (tempToken != null) {
|
||||||
userReq.setRoleId(null);
|
userReq.setRoleId(null);
|
||||||
}
|
}
|
||||||
validatePassword(userReq.getPassword(), userReq.getConfPassword(), tempToken);
|
}
|
||||||
|
|
||||||
UserEntity userEntity = convertUserRequestToUserEntity(userReq);
|
private void validatePassword(String password, String confirmPassword, String tempToken) {
|
||||||
userEntity = userRepository.save(userEntity);
|
|
||||||
log.info("User created with ID: {}", userEntity.getId());
|
|
||||||
return authService.getJWTTokenBean(userEntity, Boolean.TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validatePassword(String password, String confirmPassword, String tempToken) {
|
|
||||||
if (StringUtils.isEmpty(password) || StringUtils.isEmpty(confirmPassword)) {
|
if (StringUtils.isEmpty(password) || StringUtils.isEmpty(confirmPassword)) {
|
||||||
if(tempToken == null) {
|
if(tempToken == null) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.VALIDATE_PASSWORD));
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.VALIDATE_PASSWORD));
|
||||||
@@ -124,22 +152,24 @@ public class UserDao {
|
|||||||
return convertUserEntityToUserResponse(userEntity);
|
return convertUserEntityToUserResponse(userEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserEntity convertUserRequestToUserEntity(UserReq userReq) {
|
private UserEntity convertUserRequestToUserEntity(BeneficiaryEntity beneficiary, RoleEntity roleEntity, UserReq userReq) {
|
||||||
UserEntity userEntity = new UserEntity();
|
UserEntity userEntity = new UserEntity();
|
||||||
if(Boolean.FALSE.equals(StringUtils.isEmpty(userReq.getPassword()))) {
|
if(Boolean.FALSE.equals(StringUtils.isEmpty(userReq.getPassword()))) {
|
||||||
userEntity.setPassword(passwordEncoder.encode(userReq.getPassword()));
|
userEntity.setPassword(passwordEncoder.encode(userReq.getPassword()));
|
||||||
}
|
}
|
||||||
|
userEntity.setRoleEntity(roleEntity);
|
||||||
userEntity.setEmail(userReq.getEmail());
|
userEntity.setEmail(userReq.getEmail());
|
||||||
userEntity.setFirstName(userReq.getFirstName());
|
|
||||||
userEntity.setStatus(UserStatusEnum.ACTIVE.getValue());
|
userEntity.setStatus(UserStatusEnum.ACTIVE.getValue());
|
||||||
userEntity.setLastName(userReq.getLastName());
|
userEntity.setBeneficiary(beneficiary);
|
||||||
userEntity.setOrganization(userReq.getOrganization());
|
if (Boolean.FALSE.equals(RoleStatusEnum.ROLE_BENEFICIARY.getValue().equals(roleEntity.getRoleType()))) {
|
||||||
userEntity.setAddress(userReq.getAddress());
|
userEntity.setFirstName(userReq.getFirstName());
|
||||||
userEntity.setPhoneNumber(userReq.getPhoneNumber());
|
userEntity.setLastName(userReq.getLastName());
|
||||||
userEntity.setRoleEntity(getRoleEntity(userReq.getRoleId()));
|
userEntity.setOrganization(userReq.getOrganization());
|
||||||
userEntity.setCodiceFiscale(userReq.getCodiceFiscale());
|
userEntity.setAddress(userReq.getAddress());
|
||||||
userEntity.setDateOfBirth(userReq.getDateOfBirth());
|
userEntity.setPhoneNumber(userReq.getPhoneNumber());
|
||||||
return userEntity;
|
userEntity.setDateOfBirth(userReq.getDateOfBirth());
|
||||||
|
}
|
||||||
|
return userRepository.save(userEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RoleEntity getRoleEntity(Long roleId) {
|
private RoleEntity getRoleEntity(Long roleId) {
|
||||||
@@ -151,37 +181,48 @@ public class UserDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private UserResponseBean convertUserEntityToUserResponse(UserEntity userEntity) {
|
private UserResponseBean convertUserEntityToUserResponse(UserEntity userEntity) {
|
||||||
UserResponseBean userResponseBean = new UserResponseBean();
|
UserResponseBean userResponseBean = new UserResponseBean();
|
||||||
userResponseBean.setId(userEntity.getId());
|
userResponseBean.setId(userEntity.getId());
|
||||||
userResponseBean.setCreatedDate(userEntity.getCreatedDate());
|
userResponseBean.setCreatedDate(userEntity.getCreatedDate());
|
||||||
userResponseBean.setUpdatedDate(userEntity.getUpdatedDate());
|
userResponseBean.setUpdatedDate(userEntity.getUpdatedDate());
|
||||||
userResponseBean.setEmail(userEntity.getEmail());
|
userResponseBean.setEmail(userEntity.getEmail());
|
||||||
userResponseBean.setFirstName(userEntity.getFirstName());
|
userResponseBean.setStatus(UserStatusEnum.valueOf(userEntity.getStatus()));
|
||||||
userResponseBean.setLastName(userEntity.getLastName());
|
RoleResponseBean roleResponseBean = roleDao.convertRoleEntityToRoleResponse(userEntity.getRoleEntity());
|
||||||
userResponseBean.setPhoneNumber(userEntity.getPhoneNumber());
|
userResponseBean.setRole(roleResponseBean);
|
||||||
userResponseBean.setOrganization(userEntity.getOrganization());
|
userResponseBean.setLastLogin(userEntity.getLastLogin());
|
||||||
userResponseBean.setAddress(userEntity.getAddress());
|
if (userEntity.getBeneficiary() == null) {
|
||||||
userResponseBean.setCity(userEntity.getCity());
|
userResponseBean.setFirstName(userEntity.getFirstName());
|
||||||
userResponseBean.setCountry(userEntity.getCountry());
|
userResponseBean.setLastName(userEntity.getLastName());
|
||||||
userResponseBean.setStatus(UserStatusEnum.valueOf(userEntity.getStatus()));
|
userResponseBean.setPhoneNumber(userEntity.getPhoneNumber());
|
||||||
RoleResponseBean roleResponseBean = roleDao.convertRoleEntityToRoleResponse(userEntity.getRoleEntity());
|
userResponseBean.setOrganization(userEntity.getOrganization());
|
||||||
userResponseBean.setRole(roleResponseBean);
|
userResponseBean.setAddress(userEntity.getAddress());
|
||||||
userResponseBean.setLastLogin(userEntity.getLastLogin());
|
userResponseBean.setCity(userEntity.getCity());
|
||||||
userResponseBean.setCodiceFiscale(userEntity.getCodiceFiscale());
|
userResponseBean.setCountry(userEntity.getCountry());
|
||||||
userResponseBean.setDateOfBirth(userEntity.getDateOfBirth());
|
userResponseBean.setDateOfBirth(userEntity.getDateOfBirth());
|
||||||
return userResponseBean;
|
} else {
|
||||||
}
|
userResponseBean.setFirstName(userEntity.getBeneficiary().getFirstName());
|
||||||
|
userResponseBean.setLastName(userEntity.getBeneficiary().getLastName());
|
||||||
|
userResponseBean.setPhoneNumber(userEntity.getBeneficiary().getPhoneNumber());
|
||||||
|
userResponseBean.setOrganization(userEntity.getBeneficiary().getOrganization());
|
||||||
|
userResponseBean.setAddress(userEntity.getBeneficiary().getAddress());
|
||||||
|
userResponseBean.setCity(userEntity.getBeneficiary().getCity());
|
||||||
|
userResponseBean.setCountry(userEntity.getBeneficiary().getCountry());
|
||||||
|
userResponseBean.setCodiceFiscale(userEntity.getBeneficiary().getCodiceFiscale());
|
||||||
|
userResponseBean.setDateOfBirth(userEntity.getBeneficiary().getDateOfBirth());
|
||||||
|
}
|
||||||
|
return userResponseBean;
|
||||||
|
}
|
||||||
|
|
||||||
public UserResponseBean getUserById(Long id) {
|
public UserResponseBean getUserById(Long id) {
|
||||||
log.info("Fetching user with ID: {}", id);
|
log.info("Fetching user with ID: {}", id);
|
||||||
UserEntity userEntity=validateUser(id);
|
UserEntity userEntity = validateUser(id);
|
||||||
// if (!UserStatusEnum.ACTIVE.getValue().equals(userEntity.getStatus())) {
|
// if (!UserStatusEnum.ACTIVE.getValue().equals(userEntity.getStatus())) {
|
||||||
// log.info("User with ID: {} is not active", id);
|
// log.info("User with ID: {} is not active", id);
|
||||||
// throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG));
|
// throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG));
|
||||||
// }
|
// }
|
||||||
log.info("User found: {}", userEntity);
|
log.info("User found: {}", userEntity);
|
||||||
return convertUserEntityToUserResponse(userEntity);
|
return convertUserEntityToUserResponse(userEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteUser(Long id) {
|
public void deleteUser(Long id) {
|
||||||
log.info("Deleting user with ID: {}", id);
|
log.info("Deleting user with ID: {}", id);
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package net.gepafin.tendermanagement.entities;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import jakarta.validation.constraints.Email;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "beneficiary")
|
||||||
|
@Data
|
||||||
|
public class BeneficiaryEntity extends BaseEntity {
|
||||||
|
|
||||||
|
@Email
|
||||||
|
@Column(name = "EMAIL")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
@Column(name = "FIRST_NAME")
|
||||||
|
private String firstName;
|
||||||
|
|
||||||
|
@Column(name = "LAST_NAME")
|
||||||
|
private String lastName;
|
||||||
|
|
||||||
|
@Column(name = "PHONE_NUMBER")
|
||||||
|
private String phoneNumber;
|
||||||
|
|
||||||
|
@Column(name = "ORGANIZATION")
|
||||||
|
private String organization;
|
||||||
|
|
||||||
|
@Column(name = "ADDRESS")
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
@Column(name = "CITY")
|
||||||
|
private String city;
|
||||||
|
|
||||||
|
@Column(name = "COUNTRY")
|
||||||
|
private String country;
|
||||||
|
|
||||||
|
@Column(name = "CODICE_FISCALE")
|
||||||
|
private String codiceFiscale;
|
||||||
|
|
||||||
|
@Column(name = "DATE_OF_BIRTH")
|
||||||
|
private LocalDateTime dateOfBirth;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -59,9 +59,10 @@ public class UserEntity extends BaseEntity {
|
|||||||
@Column(name = "RESET_PASSWORD_TOKEN", length = 255, nullable = true)
|
@Column(name = "RESET_PASSWORD_TOKEN", length = 255, nullable = true)
|
||||||
private String resetPasswordToken;
|
private String resetPasswordToken;
|
||||||
|
|
||||||
@Column(name = "CODICE_FISCALE")
|
|
||||||
private String codiceFiscale;
|
|
||||||
|
|
||||||
@Column(name = "DATE_OF_BIRTH")
|
@Column(name = "DATE_OF_BIRTH")
|
||||||
private LocalDateTime dateOfBirth;
|
private LocalDateTime dateOfBirth;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(name = "BENEFICIARY_ID")
|
||||||
|
private BeneficiaryEntity beneficiary;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package net.gepafin.tendermanagement.repositories;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.entities.BeneficiaryEntity;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface BeneficiaryRepository extends JpaRepository<BeneficiaryEntity, Long> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,9 +2,11 @@ package net.gepafin.tendermanagement.repositories;
|
|||||||
|
|
||||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
public interface UserRepository extends JpaRepository<UserEntity, Long> {
|
public interface UserRepository extends JpaRepository<UserEntity, Long> {
|
||||||
|
|
||||||
Optional<UserEntity> findByEmailIgnoreCase(String email);
|
Optional<UserEntity> findByEmailIgnoreCase(String email);
|
||||||
@@ -13,7 +15,7 @@ public interface UserRepository extends JpaRepository<UserEntity, Long> {
|
|||||||
|
|
||||||
UserEntity findByEmail(String email);
|
UserEntity findByEmail(String email);
|
||||||
|
|
||||||
Optional<UserEntity> findByCodiceFiscale(String cf);
|
Optional<UserEntity> findByBeneficiaryCodiceFiscale(String codiceFiscale);
|
||||||
|
|
||||||
boolean existsByCodiceFiscale(String codiceFiscale);
|
boolean existsByBeneficiaryCodiceFiscale(String codiceFiscale);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,23 +91,35 @@ public class AuthenticationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static LoginResponse getLoginResponse(UserEntity user, RoleResponseBean roleResponseBean) {
|
private static LoginResponse getLoginResponse(UserEntity user, RoleResponseBean roleResponseBean) {
|
||||||
LoginResponse loginResponse = new LoginResponse();
|
LoginResponse loginResponse = new LoginResponse();
|
||||||
loginResponse.setId(user.getId());
|
loginResponse.setEmail(user.getEmail());
|
||||||
loginResponse.setEmail(user.getEmail());
|
loginResponse.setId(user.getId());
|
||||||
loginResponse.setFirstName(user.getFirstName());
|
loginResponse.setRole(roleResponseBean);
|
||||||
loginResponse.setLastName(user.getLastName());
|
loginResponse.setStatus(user.getStatus());
|
||||||
loginResponse.setRole(roleResponseBean);
|
loginResponse.setLastLogin(user.getLastLogin());
|
||||||
loginResponse.setPhoneNumber(user.getPhoneNumber());
|
|
||||||
loginResponse.setAddress(user.getAddress());
|
|
||||||
loginResponse.setOrganization(user.getOrganization());
|
|
||||||
loginResponse.setCountry(user.getCountry());
|
|
||||||
loginResponse.setStatus(user.getStatus());
|
|
||||||
loginResponse.setCity(user.getCity());
|
|
||||||
loginResponse.setLastLogin(user.getLastLogin());
|
|
||||||
loginResponse.setCodiceFiscale(user.getCodiceFiscale());
|
|
||||||
loginResponse.setDateOfBirth(user.getDateOfBirth());
|
|
||||||
loginResponse.setCreatedDate(user.getCreatedDate());
|
loginResponse.setCreatedDate(user.getCreatedDate());
|
||||||
loginResponse.setUpdatedDate(user.getUpdatedDate());
|
loginResponse.setUpdatedDate(user.getUpdatedDate());
|
||||||
|
if (user.getBeneficiary() == null) {
|
||||||
|
loginResponse.setFirstName(user.getFirstName());
|
||||||
|
loginResponse.setLastName(user.getLastName());
|
||||||
|
loginResponse.setPhoneNumber(user.getPhoneNumber());
|
||||||
|
loginResponse.setAddress(user.getAddress());
|
||||||
|
loginResponse.setOrganization(user.getOrganization());
|
||||||
|
loginResponse.setCountry(user.getCountry());
|
||||||
|
loginResponse.setCity(user.getCity());
|
||||||
|
loginResponse.setDateOfBirth(user.getDateOfBirth());
|
||||||
|
}else {
|
||||||
|
loginResponse.setFirstName(user.getBeneficiary().getFirstName());
|
||||||
|
loginResponse.setLastName(user.getBeneficiary().getLastName());
|
||||||
|
loginResponse.setPhoneNumber(user.getBeneficiary().getPhoneNumber());
|
||||||
|
loginResponse.setAddress(user.getBeneficiary().getAddress());
|
||||||
|
loginResponse.setOrganization(user.getBeneficiary().getOrganization());
|
||||||
|
loginResponse.setCountry(user.getBeneficiary().getCountry());
|
||||||
|
loginResponse.setCity(user.getBeneficiary().getCity());
|
||||||
|
loginResponse.setCodiceFiscale(user.getBeneficiary().getCodiceFiscale());
|
||||||
|
loginResponse.setDateOfBirth(user.getBeneficiary().getDateOfBirth());
|
||||||
|
}
|
||||||
|
|
||||||
return loginResponse;
|
return loginResponse;
|
||||||
}
|
}
|
||||||
public void logout(HttpServletRequest request, HttpServletResponse response) {
|
public void logout(HttpServletRequest request, HttpServletResponse response) {
|
||||||
@@ -131,7 +143,7 @@ public class AuthenticationService {
|
|||||||
Map<String, List<Object>> userAttributes = Utils
|
Map<String, List<Object>> userAttributes = Utils
|
||||||
.convertStringIntoMap(samlResponseLogEntity.getAuthenticationObject());
|
.convertStringIntoMap(samlResponseLogEntity.getAuthenticationObject());
|
||||||
String cf = userAttributes.get("CodiceFiscale").get(0).toString();
|
String cf = userAttributes.get("CodiceFiscale").get(0).toString();
|
||||||
UserEntity userEntity = userRepository.findByCodiceFiscale(cf)
|
UserEntity userEntity = userRepository.findByBeneficiaryCodiceFiscale(cf)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG)));
|
Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG)));
|
||||||
samlResponseLogRepository.delete(samlResponseLogEntity);
|
samlResponseLogRepository.delete(samlResponseLogEntity);
|
||||||
@@ -150,7 +162,7 @@ public class AuthenticationService {
|
|||||||
Map<String, List<Object>> userAttributes = Utils
|
Map<String, List<Object>> userAttributes = Utils
|
||||||
.convertStringIntoMap(samlResponseLogEntity.getAuthenticationObject());
|
.convertStringIntoMap(samlResponseLogEntity.getAuthenticationObject());
|
||||||
String cf = userAttributes.get("CodiceFiscale").get(0).toString();
|
String cf = userAttributes.get("CodiceFiscale").get(0).toString();
|
||||||
if (userRepository.findByCodiceFiscale(cf).isPresent()) {
|
if (userRepository.existsByBeneficiaryCodiceFiscale(cf)) {
|
||||||
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.USER_ALREADY_EXIST_MSG));
|
Translator.toLocale(GepafinConstant.USER_ALREADY_EXIST_MSG));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class Validator {
|
|||||||
|
|
||||||
public void validateRequest(HttpServletRequest request,RoleStatusEnum role) {
|
public void validateRequest(HttpServletRequest request,RoleStatusEnum role) {
|
||||||
if (RoleStatusEnum.ROLE_SUPER_ADMIN.equals(role) && Boolean.FALSE.equals(checkIsSuperAdmin(request))) {
|
if (RoleStatusEnum.ROLE_SUPER_ADMIN.equals(role) && Boolean.FALSE.equals(checkIsSuperAdmin(request))) {
|
||||||
throw new UnauthorizedAccessException(Status.UNAUTHORIZED, Translator.toLocale(GepafinConstant.INVALID_USER));
|
throw new UnauthorizedAccessException(Status.UNAUTHORIZED, Translator.toLocale(GepafinConstant.INVALID_REQUEST));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -737,5 +737,37 @@
|
|||||||
</addColumn>
|
</addColumn>
|
||||||
<dropNotNullConstraint tableName="gepafin_user" columnName="password"/>
|
<dropNotNullConstraint tableName="gepafin_user" columnName="password"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="27-09-2024_1" author="Rajesh Khore">
|
||||||
|
<createTable tableName="beneficiary">
|
||||||
|
<column name="id" type="INTEGER" autoIncrement="true">
|
||||||
|
<constraints nullable="false" primaryKey="true"
|
||||||
|
primaryKeyName="beneficiary_pkey" />
|
||||||
|
</column>
|
||||||
|
<column name="EMAIL" type="VARCHAR(255)" />
|
||||||
|
<column name="FIRST_NAME" type="VARCHAR(255)" />
|
||||||
|
<column name="LAST_NAME" type="VARCHAR(255)" />
|
||||||
|
<column name="PHONE_NUMBER" type="VARCHAR(255)" />
|
||||||
|
<column name="ORGANIZATION" type="TEXT" />
|
||||||
|
<column name="ADDRESS" type="TEXT" />
|
||||||
|
<column name="CITY" type="TEXT" />
|
||||||
|
<column name="COUNTRY" type="TEXT" />
|
||||||
|
<column name="CODICE_FISCALE" type="varchar(255)">
|
||||||
|
<constraints nullable="true" unique="true"/>
|
||||||
|
</column>
|
||||||
|
<column name="DATE_OF_BIRTH" type="TIMESTAMP" />
|
||||||
|
<column name="created_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</createTable>
|
||||||
|
<dropColumn tableName="gepafin_user" columnName="codice_fiscale"/>
|
||||||
|
<dropNotNullConstraint tableName="gepafin_user" columnName="first_name"/>
|
||||||
|
<dropNotNullConstraint tableName="gepafin_user" columnName="last_name"/>
|
||||||
|
<addColumn tableName="gepafin_user">
|
||||||
|
<column name="beneficiary_id" type="INTEGER">
|
||||||
|
<constraints nullable="true" foreignKeyName="fk_beneficiary_gepafin_user" references="beneficiary(id)"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
Reference in New Issue
Block a user