From 117feb522905ad14aeacea42742c77035f2dd6cb Mon Sep 17 00:00:00 2001 From: Janis Streib Date: Sat, 21 Mar 2015 16:46:41 +0100 Subject: [PATCH] ADD: Use a "SupportedUser" for the user details form --- src/org/cacert/gigi/dbObjects/SupportedUser.java | 16 ++++++++++++---- .../admin/support/SupportUserDetailsForm.java | 7 +++++-- .../admin/support/SupportUserDetailsForm.templ | 2 +- .../admin/support/SupportUserDetailsPage.java | 8 ++++++-- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/org/cacert/gigi/dbObjects/SupportedUser.java b/src/org/cacert/gigi/dbObjects/SupportedUser.java index bdad013a..668fd8c9 100644 --- a/src/org/cacert/gigi/dbObjects/SupportedUser.java +++ b/src/org/cacert/gigi/dbObjects/SupportedUser.java @@ -2,6 +2,7 @@ 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; @@ -17,17 +18,17 @@ public class SupportedUser { this.ticket = ticket; } - public void setName(String fname, String mname, String lname, String suffix) { + public void setName(String fname, String mname, String lname, String suffix) throws GigiApiException { writeSELog("SE Name change"); target.setName(new Name(fname, lname, mname, suffix)); } - public void setDob(Date dob) { + public void setDob(Date dob) throws GigiApiException { writeSELog("SE dob change"); target.setDoB(dob); } - public void revokeAllCertificates() { + public void revokeAllCertificates() throws GigiApiException { writeSELog("SE Revoke certificates"); Certificate[] certs = target.getCertificates(false); for (int i = 0; i < certs.length; i++) { @@ -35,7 +36,10 @@ public class SupportedUser { } } - public void writeSELog(String type) { + 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()); @@ -56,4 +60,8 @@ public class SupportedUser { return ticket; } + public User getTargetUser() { + return target; + } + } diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java index 3a8dc30e..737a94c1 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java @@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.Name; +import org.cacert.gigi.dbObjects.SupportedUser; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.DateSelector; @@ -18,24 +19,26 @@ public class SupportUserDetailsForm extends Form { private static Template t; - private User user; + private SupportedUser user; static { t = new Template(FindDomainForm.class.getResource("SupportUserDetailsForm.templ")); } - public SupportUserDetailsForm(HttpServletRequest hsr, User user) { + public SupportUserDetailsForm(HttpServletRequest hsr, SupportedUser user) { super(hsr); this.user = user; } @Override public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + return false; } @Override protected void outputContent(PrintWriter out, Language l, Map vars) { + User user = this.user.getTargetUser(); Name name = user.getName(); vars.put("mail", user.getEmail()); vars.put("fname", name.getFname()); diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ index c0329527..e3ae77f7 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ @@ -123,7 +123,7 @@ - +
\ No newline at end of file diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java index f1eed526..23444808 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java @@ -31,10 +31,10 @@ public class SupportUserDetailsPage extends Page { String[] idP = req.getPathInfo().split("/"); id = Integer.parseInt(idP[idP.length - 1]); final User user = User.getById(id); - SupportUserDetailsForm f = new SupportUserDetailsForm(req, user); + String ticket = (String) req.getSession().getAttribute("ticketNo" + user.getId()); + SupportUserDetailsForm f = new SupportUserDetailsForm(req, new SupportedUser(user, getUser(req), ticket)); HashMap vars = new HashMap(); vars.put("details", f); - String ticket = (String) req.getSession().getAttribute("ticketNo" + user.getId()); vars.put("ticketNo", ticket); final EmailAddress[] addrs = user.getEmails(); vars.put("emails", new IterableDataset() { @@ -71,6 +71,10 @@ public class SupportUserDetailsPage extends Page { if ( !Form.getForm(req, SupportRevokeCertificatesForm.class).submit(resp.getWriter(), req)) { throw new GigiApiException("No ticket number set."); } + } else if (req.getParameter("detailupdate") != null) { + if ( !Form.getForm(req, SupportUserDetailsForm.class).submit(resp.getWriter(), req)) { + throw new GigiApiException("No ticket number set."); + } } } catch (GigiApiException e) { e.printStackTrace(); -- 2.39.2