Conflict resolved

This commit is contained in:
harish
2024-08-27 14:29:13 +05:30
18 changed files with 399 additions and 36 deletions

View File

@@ -1,8 +1,9 @@
package net.gepafin.tendermanagement.service;
import net.gepafin.tendermanagement.model.request.LoginReq;
import net.gepafin.tendermanagement.model.request.UpdateUserReq;
import net.gepafin.tendermanagement.model.request.UserReq;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.gepafin.tendermanagement.enums.UserStatusEnum;
import net.gepafin.tendermanagement.model.request.*;
import net.gepafin.tendermanagement.model.response.UserResponseBean;
import net.gepafin.tendermanagement.model.util.JWTToken;
@@ -16,4 +17,15 @@ public interface UserService {
void deleteUser(Long userId);
JWTToken login(LoginReq loginReq);
String initiatePasswordReset(InitiatePasswordResetReq resetReq);
Boolean resetPassword(ResetPasswordReq resetPasswordReq);
Boolean changePassword(ChangePasswordRequest request);
void logoutUser(HttpServletRequest request, HttpServletResponse response);
UserResponseBean updateUserStatus(Long userId, UserStatusEnum statusReq);
}

View File

@@ -1,5 +1,7 @@
package net.gepafin.tendermanagement.service.impl;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
import net.gepafin.tendermanagement.constants.GepafinConstant;
@@ -7,6 +9,7 @@ import net.gepafin.tendermanagement.dao.RoleDao;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.UserStatusEnum;
import net.gepafin.tendermanagement.model.request.LoginReq;
import net.gepafin.tendermanagement.model.request.LogoutReq;
import net.gepafin.tendermanagement.model.response.LoginResponse;
import net.gepafin.tendermanagement.model.response.RoleResponseBean;
import net.gepafin.tendermanagement.model.util.JWTToken;
@@ -21,7 +24,9 @@ import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@Service
@@ -54,8 +59,8 @@ public class AuthenticationService {
UserEntity user = userRepository.findByEmailIgnoreCase(loginReq.getEmail()).orElseThrow(()-> new CustomValidationException(Status.NOT_FOUND,
Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG)));
if (Boolean.FALSE.equals(UserStatusEnum.ACTIVE.getValue().equals(user.getStatus()))) {
new CustomValidationException(Status.NOT_FOUND,
Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG));
throw new CustomValidationException(Status.NOT_FOUND,
Translator.toLocale(GepafinConstant.USER_NOT_FOUND_MSG));
}
user.setLastLogin(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
userRepository.save(user);
@@ -67,10 +72,10 @@ public class AuthenticationService {
JWTToken jwtToken = new JWTToken(token, loginResponse);
log.info("Login successful for email: {}", loginReq.getEmail());
return jwtToken;
}
log.info("Login successful for email: {}", loginReq.getEmail());
return jwtToken;
}
private static LoginResponse getLoginResponse(UserEntity user, RoleResponseBean roleResponseBean) {
LoginResponse loginResponse = new LoginResponse();
loginResponse.setId(user.getId());
@@ -89,5 +94,15 @@ public class AuthenticationService {
loginResponse.setUpdatedDate(user.getUpdatedDate());
return loginResponse;
}
public void logout(HttpServletRequest request, HttpServletResponse response)
{ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth != null) {
String token = tokenProvider.extractTokenFromRequest(request);
tokenProvider.invalidateToken(token);
new SecurityContextLogoutHandler().logout(request, response, auth);
}
SecurityContextHolder.getContext().setAuthentication(null);
SecurityContextHolder.clearContext();
}
}

View File

@@ -1,9 +1,10 @@
package net.gepafin.tendermanagement.service.impl;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.gepafin.tendermanagement.dao.UserDao;
import net.gepafin.tendermanagement.model.request.LoginReq;
import net.gepafin.tendermanagement.model.request.UpdateUserReq;
import net.gepafin.tendermanagement.model.request.UserReq;
import net.gepafin.tendermanagement.enums.UserStatusEnum;
import net.gepafin.tendermanagement.model.request.*;
import net.gepafin.tendermanagement.model.response.LoginResponse;
import net.gepafin.tendermanagement.model.response.UserResponseBean;
import net.gepafin.tendermanagement.model.util.JWTToken;
@@ -50,4 +51,27 @@ public class UserServiceImpl implements UserService {
}
@Override
public String initiatePasswordReset(InitiatePasswordResetReq resetReq) {
return userDao.initiatePasswordReset(resetReq);
}
@Override
public Boolean resetPassword(ResetPasswordReq resetPasswordReq) {
return userDao.resetPassword(resetPasswordReq);
}
@Override
public Boolean changePassword(ChangePasswordRequest request){
return userDao.changePassword(request);
}
@Override
public void logoutUser(HttpServletRequest request, HttpServletResponse response) {
userDao.logout(request,response);
}
@Override
@Transactional(rollbackFor = Exception.class)
public UserResponseBean updateUserStatus(Long userId, UserStatusEnum statusReq) {
return userDao.updateUserStatus(userId, statusReq);
}
}