1 package org.cacert.gigi.util;
3 import java.io.PrintWriter;
6 import org.cacert.gigi.GigiApiException;
7 import org.cacert.gigi.dbObjects.CertificateOwner;
8 import org.cacert.gigi.dbObjects.Group;
9 import org.cacert.gigi.dbObjects.Organisation;
10 import org.cacert.gigi.dbObjects.User;
11 import org.cacert.gigi.localisation.Language;
12 import org.cacert.gigi.output.template.Outputable;
14 public class AuthorizationContext implements Outputable {
16 CertificateOwner target;
20 String supporterTicketId;
22 public AuthorizationContext(CertificateOwner target, User actor) {
27 public CertificateOwner getTarget() {
31 public User getActor() {
35 public boolean isInGroup(Group g) {
36 return actor.isInGroup(g);
39 public User getActor(AuthorizationContext ac) {
46 public void setSupporterTicketId(String supporterTicketId) throws GigiApiException {
47 if ( !isInGroup(Group.SUPPORTER)) {
48 throw new GigiApiException("requires a supporter");
50 this.supporterTicketId = supporterTicketId;
53 public String getSupporterTicketId() {
54 return supporterTicketId;
57 public boolean canSupport() {
58 return getSupporterTicketId() != null && isInGroup(Group.SUPPORTER);
62 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
64 out.println(l.getTranslation("Logged in as"));
67 if (target != actor) {
68 out.println(((Organisation) target).getName() + " (" + actor.getName().toString() + ")");
70 out.println(actor.getName().toString());
73 out.println(l.getTranslation("with"));
74 out.println(vars.get("loginMethod"));
75 out.println("</div>");
76 if (supporterTicketId != null) {
78 out.println(l.getTranslation("SupportTicket: "));
79 out.println(supporterTicketId);
80 out.println("</div>");