From 3d0c6e4865d4a0ddd764da533a327faf76e0cb32 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Fri, 10 Jan 2014 18:50:52 +0000
Subject: [PATCH] #394 feature - Catalog module finished in beta - Security and Error management are not completed

---
 securis/src/main/java/net/curisit/securis/services/OrganizationResource.java |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 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 feec7e5..b8b8cc3 100644
--- a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
@@ -119,7 +119,7 @@
 			users = new ArrayList<>();
 			for (String username : usersIds) {
 				User user = em.find(User.class, username);
-				if (parentOrg == null) {
+				if (user == null) {
 					log.error("Organization user with id {} not found in DB", username);
 					return Response.status(Status.NOT_FOUND).header(SecurisErrorHandler.HEADER_ERROR_MESSAGE, "Organization's user not found with ID: " + username).build();
 				}
@@ -191,13 +191,17 @@
 	public Response delete(@PathParam("orgid") String orgid, @Context HttpServletRequest request) {
 		log.info("Deleting app with id: {}", orgid);
 		EntityManager em = emProvider.get();
-		Organization app = em.find(Organization.class, Integer.parseInt(orgid));
-		if (app == null) {
+		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).build();
+			return Response.status(Status.NOT_FOUND).header(SecurisErrorHandler.HEADER_ERROR_MESSAGE, "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(SecurisErrorHandler.HEADER_ERROR_MESSAGE, "Organization has children and can not be deleted, ID: " + orgid).build();
 		}
 
-		em.remove(app);
+		em.remove(org);
 		return Response.ok(Utils.createMap("success", true, "id", orgid)).build();
 	}
 

--
Gitblit v1.3.2