rsanchez
2014-11-17 04f9a9d2dbd2d79bfffea9c5a6b7ba1b32c5f42b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package net.curisit.securis.services.helpers;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Date;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.EntityManager;
import net.curisit.securis.db.License;
import net.curisit.securis.db.LicenseHistory;
import net.curisit.securis.db.LicenseStatus;
import net.curisit.securis.db.User;
import net.curisit.securis.security.BasicSecurityContext;
import net.curisit.securis.services.exception.SeCurisServiceException;
import org.apache.commons.io.IOUtils;
@Singleton
public class LicenseHelper {
    @Inject
    private UserHelper userHelper;
    /**
     * Cancel the license
     * 
     * @param lic
     * @param em
     */
    public void cancelLicense(License lic, String reason, BasicSecurityContext bsc, EntityManager em) throws SeCurisServiceException {
        lic.setStatus(LicenseStatus.CANCELLED);
        lic.setCancelledById(bsc.getUserPrincipal().getName());
        lic.setModificationTimestamp(new Date());
        em.persist(lic);
        em.persist(createLicenseHistoryAction(lic, userHelper.getUser(bsc, em), LicenseHistory.Actions.CANCEL, "Cancellation reason: " + reason));
    }
    public LicenseHistory createLicenseHistoryAction(License lic, User user, String action, String comments) {
        LicenseHistory lh = new LicenseHistory();
        lh.setLicense(lic);
        lh.setUser(user);
        lh.setCreationTimestamp(new Date());
        lh.setAction(action);
        lh.setComments(comments);
        return lh;
    }
    public LicenseHistory createLicenseHistoryAction(License lic, User user, String action) {
        return createLicenseHistoryAction(lic, user, action, null);
    }
    public File createTemporaryLicenseFile(License lic, String licFileName) throws IOException {
        File f = Files.createTempDirectory("securis-server").toFile();
        f = new File(f, licFileName);
        IOUtils.write(lic.getLicenseData(), new FileWriter(f));
        return f;
    }
}