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