diff --git a/src/main/java/com/tarento/retail/controller/UserController.java b/src/main/java/com/tarento/retail/controller/UserController.java index 051720918c95e3f3cdfd58acd3f38445c7cb6277..8fb59c0e97a3dec5214987645231d2c67cfd784c 100644 --- a/src/main/java/com/tarento/retail/controller/UserController.java +++ b/src/main/java/com/tarento/retail/controller/UserController.java @@ -564,33 +564,44 @@ public class UserController { @RequestMapping(value = PathRoutes.UserRoutes.REQUEST_OTP, method = RequestMethod.POST) public String requestOTP(@RequestBody LoginUser loginUser) throws JsonProcessingException { if (StringUtils.isNotBlank(loginUser.getUsername())) { - if (userService.checkUserNameExists(loginUser.getUsername(), null) != 0L) { - Boolean authorized = Boolean.FALSE; - - // Mobile login validation - if (loginUser.getIsMobile() != null && loginUser.getIsMobile()) { - // Allow only inspector role - List<Role> userRoles = userService.findAllRolesByUser(null, null, loginUser.getUsername()); - if (userRoles != null && userRoles.size() > 0) { - for (Role role : userRoles) { - if (role.getName().equalsIgnoreCase(Constants.UserRoles.INSPECTOR.name())) { - authorized = Boolean.TRUE; - break; + User user = userService.getUserByEmailId(loginUser.getUsername()); + if(user != null) { + if(!user.getIsDeleted()) { + + Boolean authorized = Boolean.FALSE; + + // Mobile login validation + if (loginUser.getIsMobile() != null && loginUser.getIsMobile()) { + // Allow only inspector role + List<Role> userRoles = userService.findAllRolesByUser(null, null, loginUser.getUsername()); + if (userRoles != null && userRoles.size() > 0) { + for (Role role : userRoles) { + if (role.getName().equalsIgnoreCase(Constants.UserRoles.INSPECTOR.name())) { + authorized = Boolean.TRUE; + break; + } } } + } else { + authorized = Boolean.TRUE; } - } else { - authorized = Boolean.TRUE; - } - // send otp - if (authorized) { - if (userService.requestOTP(loginUser.getUsername())) { - return ResponseGenerator.successResponse("OTP sent successfully!"); + // send otp + if (authorized) { + if (userService.requestOTP(loginUser.getUsername())) { + return ResponseGenerator.successResponse("OTP sent successfully!"); + } + return ResponseGenerator.failureResponse("Failed to send OTP."); } - return ResponseGenerator.failureResponse("Failed to send OTP."); + + }else { + return ResponseGenerator.failureResponse(Constants.DELETED_USER); } + + }else { + return ResponseGenerator.failureResponse(Constants.UNAUTHORIZED_USER); } + return ResponseGenerator.failureResponse(Constants.UNAUTHORIZED_USER); } else { return ResponseGenerator.failureResponse("Email id missing"); diff --git a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java index d9bce4f23ea13a1a34a153ba1925853f7b005c1b..e219cd0e3a77780b82d563562a5bf23bb4328818 100644 --- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java +++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java @@ -443,6 +443,7 @@ public class UserDaoImpl implements UserDao { try { userId = jdbcTemplate.queryForObject(UserQueries.GET_USER_ID, new Object[] { emailId, emailId, phoneNo }, Long.class); + } catch (Exception e) { LOGGER.error("Encountered an Exception while finding the UserName Availability : " + e); } diff --git a/src/main/java/com/tarento/retail/model/User.java b/src/main/java/com/tarento/retail/model/User.java index 16cde571329fb6207dc507ba1622c8049581650d..7e70fdcdf0b8dd6b4af64a619a5840d0e25374b6 100644 --- a/src/main/java/com/tarento/retail/model/User.java +++ b/src/main/java/com/tarento/retail/model/User.java @@ -28,7 +28,8 @@ public class User { private String timeZone; private String avatarUrl; - + + public String getAvatarUrl() { return avatarUrl; } diff --git a/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java b/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java index 939b9990c0e9f01177a673cededf2a6e5dabac83..907971b62d439f8f5aecf67dd17a541c29c28411 100644 --- a/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java +++ b/src/main/java/com/tarento/retail/model/mapper/SqlDataMapper.java @@ -67,6 +67,8 @@ public class SqlDataMapper { user.setUsername(rs.getString("username")); user.setEmailId(rs.getString("email_id")); user.setPhoneNo(rs.getString("phone_no")); + user.setIsActive(rs.getBoolean("is_active")); + user.setIsDeleted(rs.getBoolean("is_deleted")); return user; } } diff --git a/src/main/java/com/tarento/retail/service/UserService.java b/src/main/java/com/tarento/retail/service/UserService.java index cb1960f051d54bf597cc2ea6fc572b709807e04c..b39923254a5ca2e7302d605744736660ea197a0a 100644 --- a/src/main/java/com/tarento/retail/service/UserService.java +++ b/src/main/java/com/tarento/retail/service/UserService.java @@ -254,4 +254,6 @@ public interface UserService { List<InstituteCourses> findAllInstituteCourses(Long userId); + User getUserByEmailId(String emailId); + } \ No newline at end of file diff --git a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java index 1f5525a687128d3265adf5fc98190dee62ec1a67..da0059297eb13b14a71248a88844dbf02719ed2f 100644 --- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java +++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java @@ -270,6 +270,12 @@ public class UserServiceImpl implements UserDetailsService, UserService { public Long checkUserNameExists(String emailId, String phoneNo) { return userDao.checkUserNameExists(emailId, phoneNo); } + + @Override + public User getUserByEmailId(String emailId) { + return userDao.findOnlyUser(emailId); + } + @Override public Boolean uploadFile(MultipartFile file, long userId) { diff --git a/src/main/java/com/tarento/retail/util/Constants.java b/src/main/java/com/tarento/retail/util/Constants.java index f10879069cd2288ae0d7a83c35f0e94d6bf636b4..6985cfd60aabc1df988b7e4ce5fb8b37cc369216 100644 --- a/src/main/java/com/tarento/retail/util/Constants.java +++ b/src/main/java/com/tarento/retail/util/Constants.java @@ -63,6 +63,7 @@ public class Constants { public static String UNAUTHORIZED = "Invalid credentials. Please try again."; public static String PROCESS_FAIL = "Process failed, Please try again."; public static String UNAUTHORIZED_USER = "Unauthorized user"; + public static String DELETED_USER = "User Deleted. Please contact Admin to active"; public static final String EXCEPTION_METHOD = "Exception in %s method : %s"; /** diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java index f18c7f51031c773568234a7dd001efa1d129d462..9becd1e418fa1b289601784291b81b4ea41baccc 100644 --- a/src/main/java/com/tarento/retail/util/Sql.java +++ b/src/main/java/com/tarento/retail/util/Sql.java @@ -71,7 +71,7 @@ public interface Sql { final String SELECT_USER_BY_TOKEN = "SELECT COUNT(*) FROM user_authentication WHERE auth_token = ? "; final String SELECT_USER_ON_USERNAME = "SELECT * FROM user usr inner join country_user cu on usr.id =cu.user_id inner join country c on cu.country_id = c.id where username=? or phone_no = ?"; - final String SELECT_ONLY_USER = "SELECT id, username, password, email_id, phone_no FROM user where username = ? or phone_no = ? "; + final String SELECT_ONLY_USER = "SELECT id, username, password, email_id, phone_no, is_active, is_deleted FROM user where username = ? or phone_no = ? "; final String MAP_USER_TO_ROLE_WITH_ORG = "INSERT INTO user_role (user_id, role_id, org_id) VALUES (?, ?, ?)"; final String MAP_USER_TO_ROLE = "INSERT INTO user_role (user_id, role_id) VALUES (?, ?)"; @@ -178,7 +178,7 @@ public interface Sql { + " LEFT JOIN role_org ro ON ro.role_id = r.id " + " LEFT JOIN role_actions ra ON r.id = ra.role_id " + " LEFT JOIN actions act ON ra.action_id = act.id " + " WHERE usr.username = ? "; - final String GET_USER_ID = "SELECT id FROM user WHERE username = ? OR email_id = ? OR phone_no = ?"; + final String GET_USER_ID = "SELECT id FROM user WHERE (username = ? OR email_id = ? OR phone_no = ?) and is_deleted = 0"; final String GET_USER_PROFILE = "SELECT user.id, user.username, user.email_id as emailId, user.phone_no as phoneNo, user.avatar_url as avatarUrl, user_profile.first_name, user_profile.last_name, user_profile.dob FROM user LEFT JOIN user_profile on user_profile.user_id = user.id WHERE (user.username = ? or user.email_id = ? ) and is_active is TRUE"; final String GET_NUMBER_USER_ROLES = "SELECT count(*) as 'numberOfUsers', r.role_name as 'roleName' from user usr LEFT JOIN user_role ur ON usr.id = ur.user_id LEFT JOIN role r ON ur.role_id = r.id where r.id > 2090 group by r.role_name "; final String SET_USER_PIN = "UPDATE user SET pin=? WHERE id= ?";