package org.cacert.gigi.dbObjects;
-import java.sql.Date;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Locale;
import org.cacert.gigi.GigiApiException;
-import org.cacert.gigi.database.DatabaseConnection;
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 {
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(Date dob) throws GigiApiException {
- if (dob.toString().equals(target.getDoB().toString())) {
+ 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;
}
if (ticket == null) {
throw new GigiApiException("No ticket set!");
}
- GigiPreparedStatement prep = DatabaseConnection.getInstance().prepare("INSERT INTO adminLog SET uid=?, admin=?, type=?, information=?");
- prep.setInt(1, target.getId());
- prep.setInt(2, supporter.getId());
- prep.setString(3, type);
- prep.setString(4, ticket);
- prep.executeUpdate();
+ try (GigiPreparedStatement prep = new GigiPreparedStatement("INSERT INTO `adminLog` SET uid=?, admin=?, type=?, information=?")) {
+ prep.setInt(1, target.getId());
+ prep.setInt(2, supporter.getId());
+ prep.setString(3, type);
+ prep.setString(4, ticket);
+ prep.executeUpdate();
+ }
}
public int getId() {
return target;
}
- public void submitSupportAction() throws GigiApiException {
- target.rawUpdateUserData();
+ public void grant(Group toMod) {
+ target.grantGroup(supporter, toMod);
}
+ public void revoke(Group toMod) {
+ 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<String, Object> 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();
+ }
+ }
}