X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2Futil%2FAuthorizationContext.java;h=892f1175d00d376d5dde56bf3ad25295281b644d;hb=f245dad9d91699b12c6bd5a27a97757eedb50deb;hp=6e4bd8bf4c1ec885f51ccf7f7caa661f568e6231;hpb=06fff0058cc341b53a5fd57a0afc8b2c1d906d28;p=gigi.git diff --git a/src/org/cacert/gigi/util/AuthorizationContext.java b/src/org/cacert/gigi/util/AuthorizationContext.java index 6e4bd8bf..892f1175 100644 --- a/src/org/cacert/gigi/util/AuthorizationContext.java +++ b/src/org/cacert/gigi/util/AuthorizationContext.java @@ -1,6 +1,8 @@ package org.cacert.gigi.util; import java.io.PrintWriter; +import java.io.Serializable; +import java.util.Arrays; import java.util.Map; import org.cacert.gigi.GigiApiException; @@ -10,14 +12,17 @@ import org.cacert.gigi.dbObjects.Organisation; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.template.Outputable; +import org.cacert.gigi.output.template.SprintfCommand; -public class AuthorizationContext implements Outputable { +public class AuthorizationContext implements Outputable, Serializable { - CertificateOwner target; + private static final long serialVersionUID = -2596733469159940154L; - User actor; + private CertificateOwner target; - String supporterTicketId; + private User actor; + + private String supporterTicketId; public AuthorizationContext(CertificateOwner target, User actor) { this.target = target; @@ -60,21 +65,27 @@ public class AuthorizationContext implements Outputable { return getSupporterTicketId() != null && isInGroup(Group.SUPPORTER); } + private static final SprintfCommand sp = new SprintfCommand("Logged in as {0} via {1}.", Arrays.asList("${username}", "${loginMethod}")); + + private static final SprintfCommand inner = new SprintfCommand("{0} (on behalf of {1})", Arrays.asList("${user}", "${target}")); + @Override public void output(PrintWriter out, Language l, Map vars) { out.println("
"); - out.println(l.getTranslation("Logged in as")); - out.println(": "); - - if (target != actor) { - out.println(((Organisation) target).getName() + " (" + actor.getName().toString() + ")"); - } else { - out.println(actor.getName().toString()); - } - - out.println(l.getTranslation("with")); - ((Outputable) vars.get("loginMethod")).output(out, l, vars); - out.println(); + vars.put("username", new Outputable() { + + @Override + public void output(PrintWriter out, Language l, Map vars) { + if (target != actor) { + vars.put("user", ((Organisation) target).getName().toString()); + vars.put("target", actor.getPreferredName().toString()); + inner.output(out, l, vars); + } else { + out.println(actor.getPreferredName().toString()); + } + } + }); + sp.output(out, l, vars); out.println("
"); if (supporterTicketId != null) { out.println("
");