From 8d5386be38db25a2a41c3bf6c876adee21ca26cc Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Fri, 19 Sep 2014 08:26:02 +0000
Subject: [PATCH] #396 fix - Fixed more SonarQube issues

---
 securis/src/main/java/net/curisit/securis/services/OrganizationResource.java |  392 +++++++++++++++++++++++++++----------------------------
 1 files changed, 192 insertions(+), 200 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
index 8a51b35..63df387 100644
--- a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
@@ -40,231 +40,223 @@
 import com.google.inject.persist.Transactional;
 
 /**
- * Organization resource, this service will provide methods to create, modify and delete organizations
+ * Organization resource, this service will provide methods to create, modify
+ * and delete organizations
  * 
  * @author roberto <roberto.sanchez@curisit.net>
  */
 @Path("/organization")
 public class OrganizationResource {
 
-	private static final Logger LOG = LogManager.getLogger(OrganizationResource.class);
+    private static final Logger LOG = LogManager.getLogger(OrganizationResource.class);
 
-	@Inject
-	private Provider<EntityManager> emProvider;
+    @Inject
+    private Provider<EntityManager> emProvider;
 
-	public OrganizationResource() {
-	}
+    public OrganizationResource() {}
 
-	/**
-	 * 
-	 * @return the server version in format majorVersion.minorVersion
-	 */
-	@GET
-	@Path("/")
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	@Securable
-	// @RolesAllowed(SecurityContextWrapper.ROL_ADVANCE)
-	public Response index(@Context BasicSecurityContext bsc) {
-		LOG.info("Getting organizations list ");
+    /**
+     * 
+     * @return the server version in format majorVersion.minorVersion
+     */
+    @GET
+    @Path("/")
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Securable
+    public Response index(@Context BasicSecurityContext bsc) {
+        LOG.info("Getting organizations list ");
 
-		// LOG.info("User orgs: {}", request.getAttribute("oser_orgs"));
-		BasicSecurityContext bsc2 = ResteasyProviderFactory.getContextData(BasicSecurityContext.class);
-		LOG.info("bsc: {}", bsc);
-		LOG.info("bsc2: {}", bsc2);
-		// LOG.info("securityContext: {}", scw);
-		LOG.info("securityContext ROL_ADMIN?: {}", bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN));
-		EntityManager em = emProvider.get();
-		TypedQuery<Organization> q;
-		if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
-			LOG.info("GEtting all orgs for user: " + bsc.getUserPrincipal());
-			q = em.createNamedQuery("list-organizations", Organization.class);
-		} else {
-			q = em.createNamedQuery("list-organizations", Organization.class);
-			// if (securityContext.getOrganizationsIds() == null)
-			// Response.ok().build();
-			// LOG.info("Getting only {} orgs for user: {}", securityContext.getOrganizationsIds(), securityContext.getUserPrincipal());
-			// q = em.createNamedQuery("list-organizations-by-ids", Organization.class);
-			// q.setParameter("list_ids", securityContext.getOrganizationsIds());
-		}
+        BasicSecurityContext bsc2 = ResteasyProviderFactory.getContextData(BasicSecurityContext.class);
+        LOG.debug("securityContext ROL_ADMIN?: {}", bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN));
+        EntityManager em = emProvider.get();
+        TypedQuery<Organization> q;
+        if (bsc.isUserInRole(BasicSecurityContext.ROL_ADMIN)) {
+            LOG.info("GEtting all orgs for user: " + bsc.getUserPrincipal());
+            q = em.createNamedQuery("list-organizations", Organization.class);
+        } else {
+            q = em.createNamedQuery("list-organizations", Organization.class);
+        }
 
-		List<Organization> list = q.getResultList();
+        List<Organization> list = q.getResultList();
 
-		return Response.ok(list).build();
-	}
+        return Response.ok(list).build();
+    }
 
-	/**
-	 * 
-	 * @return the server version in format majorVersion.minorVersion
-	 */
-	@GET
-	@Path("/{orgid}")
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	@Securable
-	public Response get(@PathParam("orgid") String orgid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		LOG.info("Getting organization data for id: {}: ", orgid);
-		if (orgid == null || orgid.equals("")) {
-			LOG.error("Organization ID is mandatory");
-			return Response.status(Status.NOT_FOUND).build();
-		}
-		// if (!securityContext.isOrgAccesible(Integer.parseInt(orgid))) {
-		// LOG.error("Organization with id {} not accessible for user: {}", orgid, securityContext.getUserPrincipal());
-		// return Response.status(Status.UNAUTHORIZED).build();
-		// }
+    /**
+     * 
+     * @return the server version in format majorVersion.minorVersion
+     */
+    @GET
+    @Path("/{orgid}")
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Securable
+    public Response get(@PathParam("orgid") String orgid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+        LOG.info("Getting organization data for id: {}: ", orgid);
+        if (orgid == null || "".equals(orgid)) {
+            LOG.error("Organization ID is mandatory");
+            return Response.status(Status.NOT_FOUND).build();
+        }
 
-		EntityManager em = emProvider.get();
-		Organization org = em.find(Organization.class, Integer.parseInt(orgid));
-		if (org == null) {
-			LOG.error("Organization with id {} not found in DB", orgid);
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization not found, id: " + orgid).build();
-		}
-		return Response.ok(org).build();
-	}
+        EntityManager em = emProvider.get();
+        Organization org = em.find(Organization.class, Integer.parseInt(orgid));
+        if (org == null) {
+            LOG.error("Organization with id {} not found in DB", orgid);
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization not found, id: " + orgid)
+                    .build();
+        }
+        return Response.ok(org).build();
+    }
 
-	private boolean isCyclicalRelationship(int currentId, Organization parent) {
-		while (parent != null) {
-			if (parent.getId() == currentId)
-				return true;
-			parent = parent.getParentOrganization();
-		}
-		return false;
-	}
+    private boolean isCyclicalRelationship(int currentId, Organization parent) {
+        while (parent != null) {
+            if (parent.getId() == currentId) {
+                return true;
+            }
+            parent = parent.getParentOrganization();
+        }
+        return false;
+    }
 
-	@POST
-	@Path("/")
-	@Consumes(MediaType.APPLICATION_JSON)
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	@Transactional
-	@Securable
-	@RolesAllowed(BasicSecurityContext.ROL_ADMIN)
-	public Response create(Organization org, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		LOG.info("Creating new organization");
-		EntityManager em = emProvider.get();
-		
-		try {
-			this.setParentOrg(org, org.getParentOrgId(), em);
-		} catch (SeCurisException e) {
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
-		}
-		
-		List<User> users = null;
-		List<String> usersIds = org.getUsersIds();
-		if (usersIds != null && usersIds.size() > 0) {
-			users = new ArrayList<>();
-			for (String username : usersIds) {
-				User user = em.find(User.class, username);
-				if (user == null) {
-					LOG.error("Organization user with id {} not found in DB", username);
-					return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization's user not found with ID: " + username).build();
-				}
-				users.add(user);
-			}
-		}
+    @POST
+    @Path("/")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Transactional
+    @Securable
+    @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
+    public Response create(Organization org, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+        LOG.info("Creating new organization");
+        EntityManager em = emProvider.get();
 
-		org.setUsers(users);
-		org.setCreationTimestamp(new Date());
-		em.persist(org);
+        try {
+            this.setParentOrg(org, org.getParentOrgId(), em);
+        } catch (SeCurisException e) {
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+        }
 
-		return Response.ok(org).build();
-	}
-	
-	private void setParentOrg(Organization org, Integer parentOrgId, EntityManager em) throws SeCurisException {
-		Organization parentOrg = null;
-		if (parentOrgId != null) {
-			parentOrg = em.find(Organization.class, parentOrgId);
-			if (parentOrg == null) {
-				LOG.error("Organization parent with id {} not found in DB", org.getParentOrgId());
-				throw new SecurityException("Organization's parent not found with ID: " + org.getParentOrgId());
-			}
-		}
+        List<User> users = null;
+        List<String> usersIds = org.getUsersIds();
+        if (usersIds != null && usersIds.size() > 0) {
+            users = new ArrayList<>();
+            for (String username : usersIds) {
+                User user = em.find(User.class, username);
+                if (user == null) {
+                    LOG.error("Organization user with id {} not found in DB", username);
+                    return Response.status(Status.NOT_FOUND)
+                            .header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization's user not found with ID: " + username).build();
+                }
+                users.add(user);
+            }
+        }
 
-		org.setParentOrganization(parentOrg);
-	}
+        org.setUsers(users);
+        org.setCreationTimestamp(new Date());
+        em.persist(org);
 
-	private void setOrgUsers(Organization org, List<String> usersIds, EntityManager em) throws SeCurisException {
-		List<User> users = null;
-		if (usersIds != null && usersIds.size() > 0) {
-			users = new ArrayList<>();
-			for (String username : usersIds) {
-				User user = em.find(User.class, username);
-				if (user == null) {
-					LOG.error("Organization user with id '{}' not found in DB", username);
-					throw new SecurityException("Organization's user not found with ID: " + username);
-				}
-				users.add(user);
-			}
-		}
+        return Response.ok(org).build();
+    }
 
-		org.setUsers(users);
-	}
+    private void setParentOrg(Organization org, Integer parentOrgId, EntityManager em) throws SeCurisException {
+        Organization parentOrg = null;
+        if (parentOrgId != null) {
+            parentOrg = em.find(Organization.class, parentOrgId);
+            if (parentOrg == null) {
+                LOG.error("Organization parent with id {} not found in DB", org.getParentOrgId());
+                throw new SecurityException("Organization's parent not found with ID: " + org.getParentOrgId());
+            }
+        }
 
-	@PUT
-	@POST
-	@Path("/{orgid}")
-	@Transactional
-	@Consumes(MediaType.APPLICATION_JSON)
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	@Securable
-	@RolesAllowed(BasicSecurityContext.ROL_ADMIN)
-	public Response modify(Organization org, @PathParam("orgid") String orgid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		LOG.info("Modifying organization with id: {}", orgid);
-		EntityManager em = emProvider.get();
-		Organization currentOrg = em.find(Organization.class, Integer.parseInt(orgid));
-		if (currentOrg == null) {
-			LOG.error("Organization with id {} not found in DB", orgid);
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization not found with ID: " + orgid).build();
-		}
-		try {
-			this.setParentOrg(currentOrg, org.getParentOrgId(), em);
-		} catch (SeCurisException e) {
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
-		}
-		if (org.getParentOrganization() != null) {
-			if (isCyclicalRelationship(currentOrg.getId(), org.getParentOrganization())) {
-				LOG.error("Organization parent generate a cyclical relationship, parent id {}, current id: {}", org.getParentOrgId(), currentOrg.getId());
-				return Response.status(Status.FORBIDDEN).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Cyclical relationships are not allowed, please change the parent organization, current Parent: " + org.getParentOrganization().getName()).build();
-			}
-		}
-		
-		try {
-			setOrgUsers(currentOrg, org.getUsersIds(), em);
-		} catch (SeCurisException e) {
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
-		}
+        org.setParentOrganization(parentOrg);
+    }
 
-		currentOrg.setCode(org.getCode());
-		currentOrg.setName(org.getName());
-		currentOrg.setDescription(org.getDescription());
-		em.persist(currentOrg);
+    private void setOrgUsers(Organization org, List<String> usersIds, EntityManager em) throws SeCurisException {
+        List<User> users = null;
+        if (usersIds != null && usersIds.size() > 0) {
+            users = new ArrayList<>();
+            for (String username : usersIds) {
+                User user = em.find(User.class, username);
+                if (user == null) {
+                    LOG.error("Organization user with id '{}' not found in DB", username);
+                    throw new SecurityException("Organization's user not found with ID: " + username);
+                }
+                users.add(user);
+            }
+        }
 
-		return Response.ok(currentOrg).build();
-	}
+        org.setUsers(users);
+    }
 
-	@DELETE
-	@Path("/{orgid}")
-	@Transactional
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	@Securable
-	@RolesAllowed(BasicSecurityContext.ROL_ADMIN)
-	public Response delete(@PathParam("orgid") String orgid, @Context HttpServletRequest request) {
-		LOG.info("Deleting organization with id: {}", orgid);
-		EntityManager em = emProvider.get();
-		Organization org = em.find(Organization.class, Integer.parseInt(orgid));
-		if (org == null) {
-			LOG.error("Organization with id {} can not be deleted, It was not found in DB", orgid);
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization was not found, ID: " + orgid).build();
-		}
-		if (org.getChildOrganizations() != null && org.getChildOrganizations().size() > 0) {
-			LOG.error("Organization has children and can not be deleted, ID: " + orgid);
-			return Response.status(Status.FORBIDDEN).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization has children and can not be deleted, ID: " + orgid).build();
-		}
+    @PUT
+    @POST
+    @Path("/{orgid}")
+    @Transactional
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Securable
+    @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
+    public Response modify(Organization org, @PathParam("orgid") String orgid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+        LOG.info("Modifying organization with id: {}", orgid);
+        EntityManager em = emProvider.get();
+        Organization currentOrg = em.find(Organization.class, Integer.parseInt(orgid));
+        if (currentOrg == null) {
+            LOG.error("Organization with id {} not found in DB", orgid);
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization not found with ID: " + orgid)
+                    .build();
+        }
+        try {
+            this.setParentOrg(currentOrg, org.getParentOrgId(), em);
+        } catch (SeCurisException e) {
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+        }
+        if (org.getParentOrganization() != null) {
+            if (isCyclicalRelationship(currentOrg.getId(), org.getParentOrganization())) {
+                LOG.error("Organization parent generate a cyclical relationship, parent id {}, current id: {}", org.getParentOrgId(),
+                        currentOrg.getId());
+                return Response
+                        .status(Status.FORBIDDEN)
+                        .header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER,
+                                "Cyclical relationships are not allowed, please change the parent organization, current Parent: "
+                                        + org.getParentOrganization().getName()).build();
+            }
+        }
 
-		em.remove(org);
-		return Response.ok(Utils.createMap("success", true, "id", orgid)).build();
-	}
+        try {
+            setOrgUsers(currentOrg, org.getUsersIds(), em);
+        } catch (SeCurisException e) {
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+        }
+
+        currentOrg.setCode(org.getCode());
+        currentOrg.setName(org.getName());
+        currentOrg.setDescription(org.getDescription());
+        em.persist(currentOrg);
+
+        return Response.ok(currentOrg).build();
+    }
+
+    @DELETE
+    @Path("/{orgid}")
+    @Transactional
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Securable
+    @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
+    public Response delete(@PathParam("orgid") String orgid, @Context HttpServletRequest request) {
+        LOG.info("Deleting organization with id: {}", orgid);
+        EntityManager em = emProvider.get();
+        Organization org = em.find(Organization.class, Integer.parseInt(orgid));
+        if (org == null) {
+            LOG.error("Organization with id {} can not be deleted, It was not found in DB", orgid);
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization was not found, ID: " + orgid)
+                    .build();
+        }
+        if (org.getChildOrganizations() != null && org.getChildOrganizations().size() > 0) {
+            LOG.error("Organization has children and can not be deleted, ID: " + orgid);
+            return Response.status(Status.FORBIDDEN)
+                    .header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "Organization has children and can not be deleted, ID: " + orgid).build();
+        }
+
+        em.remove(org);
+        return Response.ok(Utils.createMap("success", true, "id", orgid)).build();
+    }
 
 }

--
Gitblit v1.3.2