X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Futil%2FAuthorizationContext.java;fp=src%2Forg%2Fcacert%2Fgigi%2Futil%2FAuthorizationContext.java;h=16f458cafd09d934d29686acfab91ce4caac0a80;hb=db3ef5c43aa600a5bba60e57efd92932d2323d8c;hp=9d190f72d89f785e2bcd4e40044f9c65089b7eb5;hpb=1f6f11056753f785c9a26fab58b7fe124386a20e;p=gigi.git diff --git a/src/org/cacert/gigi/util/AuthorizationContext.java b/src/org/cacert/gigi/util/AuthorizationContext.java index 9d190f72..16f458ca 100644 --- a/src/org/cacert/gigi/util/AuthorizationContext.java +++ b/src/org/cacert/gigi/util/AuthorizationContext.java @@ -1,15 +1,24 @@ package org.cacert.gigi.util; +import java.io.PrintWriter; +import java.util.Map; + +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.CertificateOwner; import org.cacert.gigi.dbObjects.Group; +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; -public class AuthorizationContext { +public class AuthorizationContext implements Outputable { CertificateOwner target; User actor; + String supporterTicketId; + public AuthorizationContext(CertificateOwner target, User actor) { this.target = target; this.actor = actor; @@ -33,4 +42,42 @@ public class AuthorizationContext { } return ac.getActor(); } + + public void setSupporterTicketId(String supporterTicketId) throws GigiApiException { + if ( !isInGroup(Group.SUPPORTER)) { + throw new GigiApiException("requires a supporter"); + } + this.supporterTicketId = supporterTicketId; + } + + public String getSupporterTicketId() { + return supporterTicketId; + } + + public boolean canSupport() { + return getSupporterTicketId() != null && isInGroup(Group.SUPPORTER); + } + + @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")); + out.println(vars.get("loginMethod")); + out.println("
"); + if (supporterTicketId != null) { + out.println("
"); + out.println(l.getTranslation("SupportTicket: ")); + out.println(supporterTicketId); + out.println("
"); + } + } }