From fdbc8ca146b8e3aff0425e2faf94c0b4a6e3dd28 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Tue, 18 Nov 2014 20:07:36 +0000
Subject: [PATCH] #396 fix - Corrected cancel action and added Settings entity

---
 securis/src/main/java/net/curisit/securis/services/LicenseResource.java |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 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 d4a1c04..927122e 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
@@ -52,9 +52,9 @@
 import net.curisit.securis.services.exception.SeCurisServiceException.ErrorCodes;
 import net.curisit.securis.services.helpers.LicenseHelper;
 import net.curisit.securis.services.helpers.UserHelper;
+import net.curisit.securis.utils.Config;
 import net.curisit.securis.utils.EmailManager;
 import net.curisit.securis.utils.JsonUtils;
-import net.curisit.securis.utils.Params;
 import net.curisit.securis.utils.TokenHelper;
 
 import org.apache.commons.io.IOUtils;
@@ -62,6 +62,9 @@
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.inject.persist.Transactional;
 
 /**
@@ -256,7 +259,7 @@
 
         User user = userHelper.getUser(bsc.getUserPrincipal().getName(), em);
         try {
-            String subject = MessageFormat.format(Params.get(Params.KEYS.EMAIL_LIC_DEFAULT_SUBJECT), lic.getPack().getAppName());
+            String subject = MessageFormat.format(Config.get(Config.KEYS.EMAIL_LIC_DEFAULT_SUBJECT), lic.getPack().getAppName());
             String email_tpl = IOUtils.toString(this.getClass().getResourceAsStream("/lic_email.template.en"));
             String body = MessageFormat.format(email_tpl, lic.getFullName(), app.getName());
             licFile = licenseHelper.createTemporaryLicenseFile(lic, app.getLicenseFilename());
@@ -272,7 +275,7 @@
             }
         }
 
-        lic.setModificationTimestamp(new Date());
+        // lic.setModificationTimestamp(new Date());
         em.merge(lic);
         em.persist(licenseHelper.createLicenseHistoryAction(lic, user, LicenseHistory.Actions.SEND, "Email sent to: " + lic.getEmail()));
         return Response.ok(lic).build();
@@ -295,7 +298,7 @@
     @Produces({
         MediaType.APPLICATION_JSON
     })
-    public Response cancel(@PathParam("licId") Integer licId, @FormParam("reason") String reason, @Context BasicSecurityContext bsc)
+    public Response cancel(@PathParam("licId") Integer licId, CancellationLicenseActionBean actionData, @Context BasicSecurityContext bsc)
             throws SeCurisServiceException {
 
         EntityManager em = emProvider.get();
@@ -307,13 +310,13 @@
                     + " can not be canceled from the current license status");
         }
 
-        if (reason == null && (lic.getStatus() == LicenseStatus.ACTIVE || lic.getStatus() == LicenseStatus.PRE_ACTIVE)) {
+        if (actionData.reason == null) {
             LOG.error("To cancel an active License we need a reason, lic ID: {}, user: {}", lic.getId(), bsc.getUserPrincipal().getName());
             throw new SeCurisServiceException(Status.FORBIDDEN.getStatusCode(), "Active license with id " + licId
                     + " can not be canceled without a reason");
         }
 
-        licenseHelper.cancelLicense(lic, reason, bsc, em);
+        licenseHelper.cancelLicense(lic, actionData.reason, bsc, em);
         return Response.ok(lic).build();
     }
 
@@ -605,4 +608,11 @@
         f = new File(f, "config-server.lic");
         LOG.info("f: {}", f);
     }
+
+    @JsonAutoDetect
+    @JsonIgnoreProperties(ignoreUnknown = true)
+    static class CancellationLicenseActionBean {
+        @JsonProperty
+        private String reason;
+    }
 }

--
Gitblit v1.3.2