Unverified Commit 169b3f98 authored by sarojsingh2021's avatar sarojsingh2021 Committed by GitHub
Browse files

Merge pull request #3 from UPHRH-platform/delete-user

Delete user
No related merge requests found
Showing with 108 additions and 5 deletions
+108 -5
......@@ -83,7 +83,6 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
......@@ -95,11 +94,11 @@
<artifactId>spring-security-oauth2</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.6</version>
</dependency>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
......@@ -187,6 +186,23 @@
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-schema</artifactId>
<version>2.9.2</version>
</dependency> -->
</dependencies>
<build>
<plugins>
......
......@@ -11,7 +11,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
import com.tarento.retail.util.Constants;
@SpringBootApplication
public class Application {
......@@ -34,5 +33,6 @@ public class Application {
public TokenStore tokenStore() {
return new InMemoryTokenStore();
}
}
package com.tarento.retail.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import static springfox.documentation.builders.PathSelectors.regex;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.tarento.retail"))
.paths(PathSelectors.any())
.build();
}
}
......@@ -57,6 +57,13 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
"/user/mapActionToRole", "/user/unmapActionToRole", "/user/getUsersByMasterRole",
"/user/mapUserMasterRoleCountryOrg", "/user/getMasterRoleByOrgDomain", "/user/domainRole",
"/user/getUsersByRole", "/user/addOrgDomainRoles","/user/createBulkInstitute",
"/user/admin/deleteUser",
"/v2/api-docs",
"/configuration/ui",
"/swagger-resources/**",
"/configuration/security",
"/swagger-ui.html",
"/webjars/**",
PathRoutes.USER_ACTIONS_URL + PathRoutes.UserRoutes.REQUEST_OTP,
PathRoutes.AuthenticationRoutes.SIGN_IN,
PathRoutes.USER_ACTIONS_URL + PathRoutes.UserRoutes.GENERATE_PIN)
......
......@@ -493,6 +493,25 @@ public class UserController {
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// DELETE user
@RequestMapping(value = PathRoutes.UserRoutes.ADMIN_DELETE_USER, method = RequestMethod.POST)
public Object softDeleteUser(@RequestBody UserDto userDto,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
return ResponseGenerator.successResponse(userService.softDeleteUser(userDto));
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// User List based on ROLE and Org Domain
@RequestMapping(value = PathRoutes.UserRoutes.GET_USERS_BY_MASTER_ROLE, method = RequestMethod.GET)
......
......@@ -271,4 +271,6 @@ public interface UserDao {
Boolean saveInstituteCourse(InstituteCourses instituteCourses);
Boolean softDeleteUser(UserDto user);
}
......@@ -789,6 +789,17 @@ public class UserDaoImpl implements UserDao {
}
return Boolean.TRUE;
}
@Override
public Boolean softDeleteUser(UserDto user) {
try {
jdbcTemplate.update(Sql.UserQueries.SOFT_DELETE_USER, new Object[] { user.getId() });
} catch (Exception ex) {
LOGGER.error("Encounter an exception while deleting the user: " + ex);
return Boolean.FALSE;
}
return Boolean.TRUE;
}
@Override
public List<UserDto> getUsersByMasterRole(String roleCode, Long orgId) {
......@@ -909,6 +920,10 @@ public class UserDaoImpl implements UserDao {
}
paramMap.put(Constants.Parameters.ACTIVE, searchRequest.getActive());
}
// not deleted user
condition = addQueryCondition(builder, condition);
builder.append(UserQueries.TAIL_CONDITIONS_USER_NOT_DELETED);
// roleId
if (searchRequest.getRoleId() != null && searchRequest.getRoleId().size() > 0) {
condition = addQueryCondition(builder, condition);
......
......@@ -250,4 +250,6 @@ public interface UserService {
Boolean saveInstituteCourse(InstituteCourses instituteCourses);
Boolean softDeleteUser(UserDto userDto);
}
\ No newline at end of file
......@@ -473,6 +473,10 @@ public class UserServiceImpl implements UserDetailsService, UserService {
public Boolean deleteUser(UserDto userDto) {
return userDao.deleteUser(userDto);
}
@Override
public Boolean softDeleteUser(UserDto userDto) {
return userDao.softDeleteUser(userDto);
}
@Override
public List<UserDto> getUsersByMasterRole(String roleCode, Long orgId) {
......@@ -564,6 +568,7 @@ public class UserServiceImpl implements UserDetailsService, UserService {
@Override
public Boolean validateUserOTP(String username, String otp) {
try {
LoginAuthentication loginAuth = Cache.getUserAuthData(username);
if (loginAuth != null && loginAuth.getOtpExpiryDate() > DateUtil.getCurrentTimestamp()
......
......@@ -34,6 +34,7 @@ public interface PathRoutes {
final String REMOVE_ROLE_MAPPING = "/role/mapping/delete";
final String DELETE_COUNTRY = "/deleteCountry";
final String DELETE_USER = "/deleteUser";
final String ADMIN_DELETE_USER = "/admin/deleteUser";
final String GET_USER_LIST_BY_ORG = "/getUserListByOrg";
final String GET_USERS_BY_MASTER_ROLE = "getUsersByMasterRole";
final String MAP_USER_MASTER_ROLE_COUNTRY_ORG = "mapUserMasterRoleCountryOrg";
......
......@@ -130,6 +130,7 @@ public interface Sql {
final String TAIL_CONDITIONS_COUNTRY_LIKE = " prof.country LIKE ?";
final String TAIL_CONDITIONS_USER_ACTIVE = " usr.is_active is TRUE ";
final String TAIL_CONDITIONS_USER_INACTIVE = " usr.is_active is FALSE ";
final String TAIL_CONDITIONS_USER_NOT_DELETED = " usr.is_deleted is FALSE ";
final String TAIL_CONDITIONS_USER_ROLEIN = " usrrole.role_id IN ";
final String TAIL_CONDITIONS_COUNTRY_EQUALS = " prof.country = ? ";
final String ORDER_BY_USER_ID = " ORDER BY usr.id ";
......@@ -157,6 +158,7 @@ public interface Sql {
final String FETCH_AUTH_TOKEN_REF = "SELECT id FROM user_authentication WHERE auth_token = ? ";
final String REMOVE_USER_DEVICE_TOKEN = "DELETE from user_device WHERE user_auth_id IN (SELECT id FROM user_authentication WHERE auth_token =?) ";
final String DELETE_USER = "DELETE from user WHERE id=?";
final String SOFT_DELETE_USER = "UPDATE user SET deleted=1 WHERE id= ?";
final String DELETE_USER_ROLE = "DELETE from user_role where user_id=?";
final String DELETE_COUNTRY_USER = "DELETE from country_user where user_id=?";
......
......@@ -33,3 +33,7 @@ mail.smtp.email=idc-eagle@tarento.com
### Expiry Timings ###
otp.validity.mins=10080
jwt.validity.mins=10080
#springdoc.swagger-ui.path=/user-management/swagger/swagger-ui.html
#springdoc.api-docs.path=/user-management/swagger/api-docs
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment