X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FSupportedUser.java;h=decf55274047b5eab4e13400c7f2c3530cf66742;hb=47c7ef9db6c7a688853f338495ba61e3d827b2d2;hp=bdad013aa106828278a4e9648fe2b1354c5c893b;hpb=ec24cf6925bb3729a644580ad4a9375d05883c62;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/SupportedUser.java b/src/org/cacert/gigi/dbObjects/SupportedUser.java index bdad013a..decf5527 100644 --- a/src/org/cacert/gigi/dbObjects/SupportedUser.java +++ b/src/org/cacert/gigi/dbObjects/SupportedUser.java @@ -2,12 +2,16 @@ package org.cacert.gigi.dbObjects; import java.sql.Date; +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.database.GigiPreparedStatement; +import org.cacert.gigi.dbObjects.Certificate.CertificateStatus; public class SupportedUser { - private User target, supporter; + private User target; + + private User supporter; private String ticket; @@ -17,26 +21,40 @@ public class SupportedUser { this.ticket = ticket; } - public void setName(String fname, String mname, String lname, String suffix) { + public boolean setName(Name newName) throws GigiApiException { + if (newName.equals(target.getName())) { + return false; + } writeSELog("SE Name change"); - target.setName(new Name(fname, lname, mname, suffix)); + target.setName(newName); + return true; } - public void setDob(Date dob) { + public boolean setDob(Date dob) throws GigiApiException { + if (dob.toString().equals(target.getDoB().toString())) { + return false; + } writeSELog("SE dob change"); target.setDoB(dob); + return true; } - public void revokeAllCertificates() { + public void revokeAllCertificates() throws GigiApiException { writeSELog("SE Revoke certificates"); Certificate[] certs = target.getCertificates(false); + // TODO Check for open jobs! for (int i = 0; i < certs.length; i++) { - certs[i].revoke(); + if (certs[i].getStatus() == CertificateStatus.ISSUED) { + certs[i].revoke(); + } } } - public void writeSELog(String type) { - GigiPreparedStatement prep = DatabaseConnection.getInstance().prepare("INSERT INTO adminLog SET uid=?, admin=?, type=?, information=?"); + private void writeSELog(String type) throws GigiApiException { + 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); @@ -56,4 +74,12 @@ public class SupportedUser { return ticket; } + public User getTargetUser() { + return target; + } + + public void submitSupportAction() throws GigiApiException { + target.rawUpdateUserData(); + } + }