X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FSupportedUser.java;h=a4a3ba121e2c7dbab18d1646a46f9a2575138bbc;hp=df5b54e88d0c5d5753c7bcfa4c4acf2ae3390dad;hb=d0470c5987aaecbc444c7100319df69b6f740680;hpb=aa5723dbb64ec8efa63909d39ff72364f0a5ee96 diff --git a/src/org/cacert/gigi/dbObjects/SupportedUser.java b/src/org/cacert/gigi/dbObjects/SupportedUser.java index df5b54e8..a4a3ba12 100644 --- a/src/org/cacert/gigi/dbObjects/SupportedUser.java +++ b/src/org/cacert/gigi/dbObjects/SupportedUser.java @@ -1,9 +1,17 @@ package org.cacert.gigi.dbObjects; +import java.io.IOException; +import java.util.HashMap; +import java.util.Locale; + import org.cacert.gigi.GigiApiException; import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.dbObjects.Certificate.CertificateStatus; +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.template.MailTemplate; +import org.cacert.gigi.output.template.Outputable; import org.cacert.gigi.util.DayDate; +import org.cacert.gigi.util.ServerConstants; public class SupportedUser { @@ -19,21 +27,12 @@ public class SupportedUser { this.ticket = ticket; } - public boolean setName(Name newName) throws GigiApiException { - if (newName.equals(target.getName())) { - return false; - } - writeSELog("SE Name change"); - target.setName(newName); - return true; - } - public boolean setDob(DayDate dob) throws GigiApiException { if (dob.equals(target.getDoB())) { return false; } writeSELog("SE dob change"); - target.setDoB(dob); + target.setDoBAsSupport(dob); return true; } @@ -48,6 +47,15 @@ public class SupportedUser { } } + public void revokeCertificate(Certificate cert) throws GigiApiException { + + // TODO Check for open jobs! + if (cert.getStatus() == CertificateStatus.ISSUED) { + writeSELog("SE Revoke certificate"); + cert.revoke().waitFor(60000); + } + } + private void writeSELog(String type) throws GigiApiException { if (ticket == null) { throw new GigiApiException("No ticket set!"); @@ -77,11 +85,7 @@ public class SupportedUser { return target; } - public void submitSupportAction() throws GigiApiException { - target.rawUpdateUserData(); - } - - public void grant(Group toMod) { + public void grant(Group toMod) throws GigiApiException { target.grantGroup(supporter, toMod); } @@ -89,4 +93,20 @@ public class SupportedUser { target.revokeGroup(supporter, toMod); } + private static final MailTemplate supportNotification = new MailTemplate(SupportedUser.class.getResource("SupportNotificationMail.templ")); + + public void sendSupportNotification(String subject, Outputable message) { + try { + HashMap vars = new HashMap<>(); + vars.put("supporter", supporter.getPreferredName().toString()); + vars.put("action", message); + vars.put("ticket", this.getTicket()); + vars.put("subject", subject); + + String supportemailaddress = ServerConstants.getSupportMailAddress(); + supportNotification.sendMail(Language.getInstance(Locale.ENGLISH), vars, supportemailaddress); + } catch (IOException e) { + e.printStackTrace(); + } + } }