From 52ce72b22ef8d92a1f35b4993bcddaaa66d67350 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Thu, 18 Sep 2014 17:55:35 +0000
Subject: [PATCH] #396 fix - Fixed some SonarQube issues

---
 securis/src/main/java/net/curisit/securis/services/UserResource.java |   93 +++++++++++++++++++++++-----------------------
 1 files changed, 46 insertions(+), 47 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/UserResource.java b/securis/src/main/java/net/curisit/securis/services/UserResource.java
index f533283..514003b 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -28,6 +28,7 @@
 
 import net.curisit.integrity.commons.Utils;
 import net.curisit.securis.DefaultExceptionHandler;
+import net.curisit.securis.SeCurisException;
 import net.curisit.securis.db.Organization;
 import net.curisit.securis.db.User;
 import net.curisit.securis.utils.TokenHelper;
@@ -52,7 +53,7 @@
 	Provider<EntityManager> emProvider;
 
 	// private LicenseHelper licenseHelper = InjectorFactory.getInjector().getInstance(LicenseHelper.class);
-	private static final Logger log = LogManager.getLogger(UserResource.class);
+	private static final Logger LOG = LogManager.getLogger(UserResource.class);
 
 	public UserResource() {
 	}
@@ -66,7 +67,7 @@
 	@Produces(
 		{ MediaType.APPLICATION_JSON })
 	public Response index() {
-		log.info("Getting users list ");
+		LOG.info("Getting users list ");
 
 		EntityManager em = emProvider.get();
 		TypedQuery<User> q = em.createNamedQuery("list-users", User.class);
@@ -85,16 +86,16 @@
 	@Produces(
 		{ MediaType.APPLICATION_JSON })
 	public Response get(@PathParam("uid") String uid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		log.info("Getting user data for id: {}: ", uid);
+		LOG.info("Getting user data for id: {}: ", uid);
 		if (uid == null || uid.equals("")) {
-			log.error("User ID is mandatory");
+			LOG.error("User ID is mandatory");
 			return Response.status(Status.NOT_FOUND).build();
 		}
 
 		EntityManager em = emProvider.get();
 		User lt = em.find(User.class, uid);
 		if (lt == null) {
-			log.error("User with id {} not found in DB", uid);
+			LOG.error("User with id {} not found in DB", uid);
 			return Response.status(Status.NOT_FOUND).build();
 		}
 		return Response.ok(lt).build();
@@ -107,35 +108,43 @@
 		{ MediaType.APPLICATION_JSON })
 	@Transactional
 	public Response create(User user, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		log.info("Creating new user");
+		LOG.info("Creating new user");
 		EntityManager em = emProvider.get();
 		User currentUser = em.find(User.class, user.getUsername());
 		if (currentUser != null) {
-			log.info("User with id {} was found in DB, we'll try to modify it", user.getUsername());
+			LOG.info("User with id {} was found in DB, we'll try to modify it", user.getUsername());
 			return modify(user, user.getUsername(), token);
 		}
-
-		Set<Organization> orgs = null;
-		Set<Integer> orgsIds = user.getOrgsIds();
-		if (orgsIds != null && orgsIds.size() > 0) {
-			orgs = new HashSet<>();
-			for (Integer orgId : orgsIds) {
-				Organization o = em.find(Organization.class, orgId);
-				if (o == null) {
-					log.error("User organization with id {} not found in DB", orgId);
-					return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "User's organization not found with ID: " + orgId).build();
-				}
-				orgs.add(o);
-			}
+		
+		try {
+			this.setUserOrg(user, user.getOrgsIds(), em);
+		} catch (SeCurisException e) {
+			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
 		}
-
-		user.setOrganizations(orgs);
 		user.setModificationTimestamp(new Date());
 		user.setLastLogin(null);
 		user.setCreationTimestamp(new Date());
 		em.persist(user);
 
 		return Response.ok(user).build();
+	}
+	
+	private void setUserOrg(User user, Set<Integer> orgsIds, EntityManager em) throws SeCurisException {
+		Set<Organization> orgs = null;
+		if (orgsIds != null && orgsIds.size() > 0) {
+			orgs = new HashSet<>();
+			for (Integer orgId : orgsIds) {
+				Organization o = em.find(Organization.class, orgId);
+				if (o == null) {
+					LOG.error("User organization with id {} not found in DB", orgId);
+					throw new SeCurisException("User's organization not found with ID: " + orgId);
+				}
+				orgs.add(o);
+			}
+		}
+
+		user.setOrganizations(orgs);
+
 	}
 
 	@PUT
@@ -146,29 +155,19 @@
 	@Produces(
 		{ MediaType.APPLICATION_JSON })
 	public Response modify(User user, @PathParam("uid") String uid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		log.info("Modifying user with id: {}", uid);
+		LOG.info("Modifying user with id: {}", uid);
 		EntityManager em = emProvider.get();
 		User currentUser = em.find(User.class, uid);
 		if (currentUser == null) {
-			log.info("User with id {} not found in DB, we'll try to create it", uid);
+			LOG.info("User with id {} not found in DB, we'll try to create it", uid);
 			return create(user, token);
 		}
 
-		Set<Organization> orgs = null;
-		Set<Integer> orgsIds = user.getOrgsIds();
-		if (orgsIds != null && orgsIds.size() > 0) {
-			orgs = new HashSet<>();
-			for (Integer orgId : orgsIds) {
-				Organization o = em.find(Organization.class, orgId);
-				if (o == null) {
-					log.error("User organization with id {} not found in DB", orgId);
-					return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "User's user not found with ID: " + orgId).build();
-				}
-				orgs.add(o);
-			}
+		try {
+			this.setUserOrg(currentUser, user.getOrgsIds(), em);
+		} catch (SeCurisException e) {
+			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
 		}
-
-		currentUser.setOrganizations(orgs);
 		currentUser.setFirstName(user.getFirstName());
 		currentUser.setLastName(user.getLastName());
 		currentUser.setRoles(user.getRoles());
@@ -188,11 +187,11 @@
 	@Produces(
 		{ MediaType.APPLICATION_JSON })
 	public Response delete(@PathParam("uid") String uid, @Context HttpServletRequest request) {
-		log.info("Deleting app with id: {}", uid);
+		LOG.info("Deleting app with id: {}", uid);
 		EntityManager em = emProvider.get();
 		User app = em.find(User.class, uid);
 		if (app == null) {
-			log.error("User with id {} can not be deleted, It was not found in DB", uid);
+			LOG.error("User with id {} can not be deleted, It was not found in DB", uid);
 			return Response.status(Status.NOT_FOUND).build();
 		}
 
@@ -205,9 +204,9 @@
 	@Produces(
 		{ MediaType.APPLICATION_JSON })
 	public Response login(@FormParam("username") String user, @FormParam("password") String password, @Context HttpServletRequest request) {
-		log.info("index session: " + request.getSession());
-		log.info("user: {}, pass: {}", user, password);
-		log.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
+		LOG.info("index session: " + request.getSession());
+		LOG.info("user: {}, pass: {}", user, password);
+		LOG.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
 
 		if ("no".equals(password))
 			return Response.status(Status.UNAUTHORIZED).build();
@@ -233,14 +232,14 @@
 		if (token == null)
 			return Response.status(Status.FORBIDDEN).build();
 
-		log.info("Token : " + token);
+		LOG.info("Token : " + token);
 		String user = tokenHelper.extractUserFromToken(token);
-		log.info("Token user: " + user);
+		LOG.info("Token user: " + user);
 		Date date = tokenHelper.extractDateCreationFromToken(token);
-		log.info("Token date: " + date);
+		LOG.info("Token date: " + date);
 		boolean valid = tokenHelper.isTokenValid(token);
 
-		log.info("Is Token valid: " + valid);
+		LOG.info("Is Token valid: " + valid);
 
 		return Response.ok(Utils.createMap("valid", true, "user", user, "date", date, "token", token)).build();
 	}

--
Gitblit v1.3.2