package org.cacert.gigi.dbObjects;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Locale;
+import javax.servlet.http.HttpServletRequest;
+
import org.cacert.gigi.GigiApiException;
import org.cacert.gigi.database.GigiPreparedStatement;
import org.cacert.gigi.dbObjects.Certificate.CertificateStatus;
import org.cacert.gigi.output.template.MailTemplate;
import org.cacert.gigi.output.template.Outputable;
import org.cacert.gigi.output.template.SprintfCommand;
+import org.cacert.gigi.output.template.TranslateCommand;
+import org.cacert.gigi.pages.PasswordResetPage;
import org.cacert.gigi.util.DayDate;
import org.cacert.gigi.util.ServerConstants;
}
writeSELog("SE dob change");
target.setDoBAsSupport(dob);
+ String subject = "Change DoB Data";
+ // send notification to support
+ Outputable message = new TranslateCommand("The DoB was changed.");
+ sendSupportNotification(subject, message);
+ // send notification to user
+ message = SprintfCommand.createSimple("The DoB in your account was changed to {0}.", dob);
+ sendSupportUserNotification(subject, message);
return true;
}
certs[i].revoke();
}
}
+ // send notification to support
+ Outputable message = SprintfCommand.createSimple("All certificates in the account {0} <{1}> have been revoked.", target.getPreferredName().toString(), target.getEmail());
+ sendSupportNotification("Revoke certificates", message);
+ // send notification to user
+ sendSupportUserNotification("Revoke certificate", new TranslateCommand("All certificates in your account have been revoked."));
}
public void revokeCertificate(Certificate cert) throws GigiApiException {
public void grant(Group toMod) throws GigiApiException {
target.grantGroup(supporter, toMod);
+ String subject = "Change Group Permissions";
+ // send notification to support
+ Outputable message = SprintfCommand.createSimple("The group permission '{0}' was granted.", toMod.getName());
+ sendSupportNotification(subject, message);
+ // send notification to user
+ message = SprintfCommand.createSimple("The group permission '{0}' was granted to your account.", toMod.getName());
+ sendSupportUserNotification(subject, message);
}
public void revoke(Group toMod) {
target.revokeGroup(supporter, toMod);
+ String subject = "Change Group Permissions";
+ // send notification to support
+ Outputable message = SprintfCommand.createSimple("The group permission '{0}' was revoked.", toMod.getName());
+ sendSupportNotification(subject, message);
+ // send notification to user
+ message = SprintfCommand.createSimple("The group permission '{0}' was revoked from your account.", toMod.getName());
+ sendSupportUserNotification(subject, message);
}
private static final MailTemplate supportNotification = new MailTemplate(SupportedUser.class.getResource("SupportNotificationMail.templ"));
- public void sendSupportNotification(String subject, Outputable message) {
+ private void sendSupportNotification(String subject, Outputable message) {
try {
HashMap<String, Object> vars = new HashMap<>();
vars.put("supporter", supporter.getPreferredName().toString());
private static final MailTemplate supportUserNotification = new MailTemplate(SupportedUser.class.getResource("SupportUserNotificationMail.templ"));
- public void sendSupportUserNotification(String subject, Outputable message) {
+ private void sendSupportUserNotification(String subject, Outputable message) {
try {
HashMap<String, Object> vars = new HashMap<>();
vars.put("action", message);
e.printStackTrace();
}
}
+
+ public void triggerPasswordReset(String aword, PrintWriter out, HttpServletRequest req) {
+ Language l = Language.getInstance(target.getPreferredLocale());
+ String method = l.getTranslation("A password reset was triggered. Please enter the required text sent to you by support on this page:");
+ String subject = l.getTranslation("Password reset by support.");
+ PasswordResetPage.initPasswordResetProcess(out, target, req, aword, l, method, subject);
+ Outputable message = new TranslateCommand("A password reset was triggered and an email was sent to user.");
+ sendSupportNotification(subject, message);
+ }
}
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 {
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;
import org.cacert.gigi.output.GroupIterator;
import org.cacert.gigi.output.GroupSelector;
import org.cacert.gigi.output.template.Form;
-import org.cacert.gigi.output.template.Outputable;
-import org.cacert.gigi.output.template.SprintfCommand;
import org.cacert.gigi.output.template.Template;
-import org.cacert.gigi.output.template.TranslateCommand;
-import org.cacert.gigi.pages.PasswordResetPage;
public class SupportUserDetailsForm extends Form {
if (req.getParameter("addGroup") != null || req.getParameter("removeGroup") != null) {
value.update(req);
Group toMod = value.getGroup();
- boolean grant;
if (req.getParameter("addGroup") != null) {
- grant = true;
user.grant(toMod);
} else {
- grant = false;
user.revoke(toMod);
}
- String subject = "Change Group Permissions";
- // send notification to support
- Outputable message = SprintfCommand.createSimple(grant ? "The group permission '{0}' was granted." : "The group permission '{0}' was revoked.", toMod.getName());
- user.sendSupportNotification(subject, message);
- // send notification to user
- message = SprintfCommand.createSimple(grant ? "The group permission '{0}' was granted to your account." : "The group permission '{0}' was revoked from your account.", toMod.getName());
- user.sendSupportUserNotification(subject, message);
return true;
}
if (req.getParameter("resetPass") != null) {
if (aword == null || aword.equals("")) {
throw new GigiApiException("An A-Word is required to perform a password reset.");
}
- Language l = Language.getInstance(user.getTargetUser().getPreferredLocale());
- String method = l.getTranslation("A password reset was triggered. Please enter the required text sent to you by support on this page:");
- String subject = l.getTranslation("Password reset by support.");
- PasswordResetPage.initPasswordResetProcess(out, user.getTargetUser(), req, aword, l, method, subject);
- Outputable message = new TranslateCommand("A password reset was triggered and an email was sent to user.");
- user.sendSupportNotification(subject, message);
+ user.triggerPasswordReset(aword, out, req);
return true;
}
dobSelector.update(req);
throw new GigiApiException("Invalid date of birth!");
}
user.setDob(dobSelector.getDate());
-
- String subject = "Change DoB Data";
- // send notification to support
- Outputable message = new TranslateCommand("The DoB was changed.");
- user.sendSupportNotification(subject, message);
- // send notification to user
- message = SprintfCommand.createSimple("The DoB in your account was changed to {0}.", dobSelector.getDate());
- user.sendSupportUserNotification(subject, message);
return true;
}