import org.cacert.gigi.dbObjects.Certificate.CertificateStatus;
import org.cacert.gigi.dbObjects.CertificateProfile;
import org.cacert.gigi.dbObjects.SupportedUser;
+import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.output.template.Form;
import org.cacert.gigi.output.template.IterableDataset;
+import org.cacert.gigi.output.template.Outputable;
+import org.cacert.gigi.output.template.SprintfCommand;
import org.cacert.gigi.output.template.Template;
public class SupportRevokeCertificatesForm extends Form {
- private static Template t;
+ private static final Template t = new Template(SupportRevokeCertificatesForm.class.getResource("SupportRevokeCertificatesForm.templ"));
private SupportedUser user;
- static {
- t = new Template(SupportRevokeCertificatesForm.class.getResource("SupportRevokeCertificatesForm.templ"));
- }
public SupportRevokeCertificatesForm(HttpServletRequest hsr, SupportedUser user) {
super(hsr);
public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
if (user.getTicket() != null) {
user.revokeAllCertificates();
+ User target = user.getTargetUser();
+ // send notification to support
+ String subject = "Revoke certificates";
+ Outputable message = SprintfCommand.createSimple("All certificates in the account {0} <{1}> have been revoked.", target.getPreferredName().toString(), target.getEmail());
+ user.sendSupportNotification(subject, message);
+ // send notification to user
+ subject = "Revoke certificate";
+ message = SprintfCommand.createSimple("All certificates in your account have been revoked.");
+ user.sendSupportUserNotification(subject, message);
return true;
}
return false;
}
if (certs[i].getStatus() == CertificateStatus.REVOKED) {
revoked++;
+ continue;
}
certs[i].cert().checkValidity();
lastExpire = Math.max(lastExpire, certs[i].cert().getNotAfter().getTime());