@ -63,6 +63,7 @@ public class UserService {
user . setFirstLogin ( false ) ;
user . setFirstLogin ( false ) ;
}
}
user . setPassword ( passwordEncryptionService . hashPassword ( request . getPassword ( ) ) ) ;
user . setPassword ( passwordEncryptionService . hashPassword ( request . getPassword ( ) ) ) ;
user . setAconnectUser ( false ) ;
User savedUser = userRepository . save ( user ) ;
User savedUser = userRepository . save ( user ) ;
return mapToResponseDTO ( savedUser ) ;
return mapToResponseDTO ( savedUser ) ;
}
}
@ -84,8 +85,6 @@ public class UserService {
@Transactional
@Transactional
public String firstLogin ( ChangePasswordDTO request ) throws JsonProcessingException {
public String firstLogin ( ChangePasswordDTO request ) throws JsonProcessingException {
String url = securityURI + "/security/thirdparty/user/changePassword" ;
User user = userRepository . findById ( request . getUserId ( ) )
User user = userRepository . findById ( request . getUserId ( ) )
. orElseThrow ( ( ) - > new EntityNotFoundException (
. orElseThrow ( ( ) - > new EntityNotFoundException (
"User not found with ID: " + request . getUserId ( ) ) ) ;
"User not found with ID: " + request . getUserId ( ) ) ) ;
@ -97,30 +96,33 @@ public class UserService {
throw new OldPasswordNotMatch ( request . getPorOrgacode ( ) ) ;
throw new OldPasswordNotMatch ( request . getPorOrgacode ( ) ) ;
}
}
HttpHeaders headers = new HttpHeaders ( ) ;
if ( user . isAconnectUser ( ) ) {
headers . setContentType ( MediaType . APPLICATION_JSON ) ;
headers . set ( "sus_usercode" , request . getUserId ( ) ) ;
String url = securityURI + "/security/thirdparty/user/changePassword" ;
headers . set ( "por_orgacode" , request . getPorOrgacode ( ) ) ;
HttpHeaders headers = new HttpHeaders ( ) ;
// Build $set payload
headers . setContentType ( MediaType . APPLICATION_JSON ) ;
Map < String , Object > setPayload = new HashMap < > ( ) ;
headers . set ( "sus_usercode" , request . getUserId ( ) ) ;
setPayload . put ( "SUS_USERCODE" , user . getUserId ( ) ) ;
headers . set ( "por_orgacode" , request . getPorOrgacode ( ) ) ;
setPayload . put ( "SUS_PASSWORD" , request . getNewPassword ( ) ) ;
setPayload . put ( "OLD_PASSWORD" , request . getOldPassword ( ) ) ;
Map < String , Object > setPayload = new HashMap < > ( ) ;
setPayload . put ( "POR_ORGACODE" , user . getPorOrgacode ( ) ) ;
setPayload . put ( "SUS_USERCODE" , user . getUserId ( ) ) ;
setPayload . put ( "SUS_PASSWORD" , request . getNewPassword ( ) ) ;
// Build main payload
setPayload . put ( "OLD_PASSWORD" , request . getOldPassword ( ) ) ;
Map < String , Object > requestBody = new HashMap < > ( ) ;
setPayload . put ( "POR_ORGACODE" , user . getPorOrgacode ( ) ) ;
requestBody . put ( "formId" , "SH_SM_US_USER" ) ; // your form ID
requestBody . put ( "porOrgacode" , user . getPorOrgacode ( ) ) ;
Map < String , Object > requestBody = new HashMap < > ( ) ;
requestBody . put ( "set" , objectMapper . writeValueAsString ( setPayload ) ) ;
requestBody . put ( "formId" , "SH_SM_US_USER" ) ;
requestBody . put ( "filter" , buildFilter ( user . getPorOrgacode ( ) , user . getUserId ( ) ) ) ;
requestBody . put ( "porOrgacode" , user . getPorOrgacode ( ) ) ;
requestBody . put ( "set" , objectMapper . writeValueAsString ( setPayload ) ) ;
ResponseEntity < Object > ciihiveResponse =
requestBody . put ( "filter" , buildFilter ( user . getPorOrgacode ( ) , user . getUserId ( ) ) ) ;
webClientConfig . patch ( url , requestBody , headers ) ;
ResponseEntity < Object > ciihiveResponse =
if ( ! ciihiveResponse . getStatusCode ( ) . is2xxSuccessful ( ) ) {
webClientConfig . patch ( url , requestBody , headers ) ;
throw new RuntimeException ( "Failed to update password in ciihive: " + ciihiveResponse . getBody ( ) ) ;
if ( ! ciihiveResponse . getStatusCode ( ) . is2xxSuccessful ( ) ) {
throw new RuntimeException ( "Failed to update password in ciihive: " + ciihiveResponse . getBody ( ) ) ;
}
}
}
// Update local DB
// Update local DB