X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FGigi.java;h=c5ee8cd3e6f9b46a2acf9f14e10f9528af156d85;hb=4d9b0e8bdf122324cec9f3dd387c02d14c30877e;hp=99b136b8fa089d410b4c3695e4aac7afe01d95ac;hpb=d723f382f3a54ad8e616c47baf9c6d0ef2317f89;p=gigi.git diff --git a/src/org/cacert/gigi/Gigi.java b/src/org/cacert/gigi/Gigi.java index 99b136b8..c5ee8cd3 100644 --- a/src/org/cacert/gigi/Gigi.java +++ b/src/org/cacert/gigi/Gigi.java @@ -22,8 +22,10 @@ import javax.servlet.http.HttpSession; import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.dbObjects.CACertificate; +import org.cacert.gigi.dbObjects.CertificateOwner; import org.cacert.gigi.dbObjects.CertificateProfile; import org.cacert.gigi.dbObjects.DomainPingConfiguration; +import org.cacert.gigi.dbObjects.Organisation; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.Menu; @@ -61,6 +63,7 @@ import org.cacert.gigi.pages.wot.AssurePage; import org.cacert.gigi.pages.wot.MyPoints; import org.cacert.gigi.pages.wot.RequestTTPPage; import org.cacert.gigi.ping.PingerDaemon; +import org.cacert.gigi.util.AuthorizationContext; import org.cacert.gigi.util.ServerConstants; public class Gigi extends HttpServlet { @@ -107,8 +110,8 @@ public class Gigi extends HttpServlet { getMenu("CAcert.org").addItem(new SimpleMenuItem("https://" + ServerConstants.getSecureHostNamePort() + "/login", "Certificate Login") { @Override - public boolean isPermitted(User u) { - return u == null; + public boolean isPermitted(AuthorizationContext ac) { + return ac == null; } }); putPage("/", new MainPage("CAcert - Home"), null); @@ -129,8 +132,8 @@ public class Gigi extends HttpServlet { putPage(TTPAdminPage.PATH + "/*", new TTPAdminPage(), "Admin"); putPage(CreateOrgPage.DEFAULT_PATH, new CreateOrgPage(), "Organisation Admin"); putPage(ViewOrgPage.DEFAULT_PATH + "/*", new ViewOrgPage(), "Organisation Admin"); - putPage(FindDomainPage.PATH, new FindDomainPage("Find Domain"), "System Admin"); putPage(FindUserPage.PATH, new FindUserPage("Find User"), "System Admin"); + putPage(FindDomainPage.PATH, new FindDomainPage("Find Domain"), "System Admin"); putPage(SupportUserDetailsPage.PATH + "*", new SupportUserDetailsPage("Support: User Details"), null); if (testing) { try { @@ -187,7 +190,7 @@ public class Gigi extends HttpServlet { public static final String CERT_ISSUER = "org.cacert.gigi.issuer"; - public static final String USER = "user"; + public static final String AUTH_CONTEXT = "auth"; public static final String LOGIN_METHOD = "org.cacert.gigi.loginMethod"; @@ -322,8 +325,8 @@ public class Gigi extends HttpServlet { resp.sendRedirect("https://" + ServerConstants.getWwwHostNamePortSecure() + req.getPathInfo()); return; } - User currentPageUser = LoginPage.getUser(req); - if ( !p.isPermitted(currentPageUser)) { + AuthorizationContext currentAuthContext = LoginPage.getAuthorizationContext(req); + if ( !p.isPermitted(currentAuthContext)) { if (hs.getAttribute("loggedin") == null) { String request = req.getPathInfo(); request = request.split("\\?")[0]; @@ -365,14 +368,20 @@ public class Gigi extends HttpServlet { }; Language lang = Page.getLanguage(req); - vars.put(Menu.USER_VALUE, currentPageUser); + vars.put(Menu.AUTH_VALUE, currentAuthContext); vars.put("menu", rootMenu); vars.put("title", lang.getTranslation(p.getTitle())); vars.put("static", getStaticTemplateVar(isSecure)); vars.put("year", Calendar.getInstance().get(Calendar.YEAR)); vars.put("content", content); - if (currentPageUser != null) { - vars.put("loggedInAs", currentPageUser.getName().toString()); + if (currentAuthContext != null) { + CertificateOwner target = currentAuthContext.getTarget(); + User currentPageUser = LoginPage.getUser(req); + if (target != currentPageUser) { + vars.put("loggedInAs", ((Organisation) target).getName() + " (" + currentPageUser.getName().toString() + ")"); + } else { + vars.put("loggedInAs", currentPageUser.getName().toString()); + } vars.put("loginMethod", lang.getTranslation((String) req.getSession().getAttribute(LOGIN_METHOD))); } resp.setContentType("text/html; charset=utf-8");