From 8e6db5714c3884cc74c3230abf7b20589ccd1552 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Wed, 05 Feb 2014 09:51:58 +0000
Subject: [PATCH] #0 feature - Upgrade to Bootstrap 3.1 and jQuery 1.11.0

---
 securis/src/main/java/net/curisit/securis/services/LicenseResource.java |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
index 1580497..346dea0 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
@@ -125,7 +125,7 @@
 			log.error("License with id {} has not license file generated", licId, bsc.getUserPrincipal());
 			throw new SeCurisServiceException(Status.FORBIDDEN.getStatusCode(), "License has not contain data to generate license file");
 		}
-		if (lic.getStatus() != License.Status.ACTIVE) {
+		if (License.Status.isActionValid(License.Action.DOWNLOAD, lic.getStatus())) {
 			log.error("License with id {} is not active, so It can not downloaded", licId, bsc.getUserPrincipal());
 			throw new SeCurisServiceException(Status.FORBIDDEN.getStatusCode(), "License is not active, so It can not be downloaded");
 		}
@@ -145,11 +145,15 @@
 		EntityManager em = emProvider.get();
 		License lic = getCurrentLicense(licId, bsc, em);
 
-		User user = getUser(bsc.getUserPrincipal().getName(), em);
+		if (License.Status.isActionValid(License.Action.ACTIVATION, lic.getStatus())) {
+			log.error("License with id {} can not be activated from current license status", licId);
+			throw new SeCurisServiceException(Status.FORBIDDEN.getStatusCode(), "License with id " + licId + " can not be activated from the current license status");
+		}
 
 		lic.setStatus(License.Status.ACTIVE);
 		lic.setModificationTimestamp(new Date());
 		em.persist(lic);
+		User user = getUser(bsc.getUserPrincipal().getName(), em);
 		em.persist(createLicenseHistoryAction(lic, user, LicenseHistory.Actions.ACTIVATE));
 		return Response.ok(lic).build();
 	}
@@ -188,11 +192,16 @@
 		EntityManager em = emProvider.get();
 		License lic = getCurrentLicense(licId, bsc, em);
 
-		User user = getUser(bsc.getUserPrincipal().getName(), em);
+		if (License.Status.isActionValid(License.Action.CANCEL, lic.getStatus())) {
+			log.error("License with id {} can not be canceled from current license status", licId);
+			throw new SeCurisServiceException(Status.FORBIDDEN.getStatusCode(), "License with id " + licId + " can not be canceled from the current license status");
+		}
 
 		lic.setStatus(License.Status.CANCELED);
 		lic.setModificationTimestamp(new Date());
 		em.persist(lic);
+
+		User user = getUser(bsc.getUserPrincipal().getName(), em);
 		em.persist(createLicenseHistoryAction(lic, user, LicenseHistory.Actions.CANCEL));
 		return Response.ok(lic).build();
 	}

--
Gitblit v1.3.2