import org.cacert.gigi.pages.account.domain.DomainOverview;
import org.cacert.gigi.pages.account.mail.MailOverview;
import org.cacert.gigi.pages.admin.TTPAdminPage;
+import org.cacert.gigi.pages.error.AccessDenied;
import org.cacert.gigi.pages.error.PageNotFound;
import org.cacert.gigi.pages.main.RegisterPage;
+import org.cacert.gigi.pages.orga.CreateOrgPage;
+import org.cacert.gigi.pages.orga.ViewOrgPage;
import org.cacert.gigi.pages.wot.AssurePage;
import org.cacert.gigi.pages.wot.MyPoints;
import org.cacert.gigi.pages.wot.RequestTTPPage;
private KeyStore truststore;
+ private boolean testing;
+
public Gigi(Properties conf, KeyStore truststore) {
if (instance != null) {
throw new IllegalStateException("Multiple Gigi instances!");
}
+ testing = conf.getProperty("testing") != null;
instance = this;
DatabaseConnection.init(conf);
this.truststore = truststore;
@Override
public void init() throws ServletException {
if ( !firstInstanceInited) {
+ putPage("/denied", new AccessDenied(), null);
putPage("/error", new PageNotFound(), null);
- putPage("/login", new LoginPage("CAcert - Login"), "CAcert.org");
+ putPage("/login", new LoginPage("Password Login"), "CAcert.org");
+ getMenu("CAcert.org").addItem(new SimpleMenuItem("https://" + ServerConstants.getSecureHostNamePort() + "/login", "Certificate Login") {
+
+ @Override
+ public boolean isPermitted(User u) {
+ return u == null;
+ }
+ });
putPage("/", new MainPage("CAcert - Home"), null);
putPage("/roots", new RootCertPage(truststore), "CAcert.org");
putPage(ChangePasswordPage.PATH, new ChangePasswordPage(), "My Account");
putPage(MyPoints.PATH, new MyPoints("My Points"), "CAcert Web of Trust");
putPage(RequestTTPPage.PATH, new RequestTTPPage(), "CAcert Web of Trust");
putPage(TTPAdminPage.PATH + "/*", new TTPAdminPage(), "Admin");
+ putPage(CreateOrgPage.DEFAULT_PATH, new CreateOrgPage(), "Organisation Admin");
+ putPage(ViewOrgPage.DEFAULT_PATH + "/*", new ViewOrgPage(), "Organisation Admin");
+ if (testing) {
+ try {
+ Class<?> manager = Class.forName("org.cacert.gigi.pages.Manager");
+ Page p = (Page) manager.getMethod("getInstance").invoke(null);
+ String pa = (String) manager.getField("PATH").get(null);
+ putPage(pa + "/*", p, "Gigi test server");
+ } catch (ReflectiveOperationException e) {
+ e.printStackTrace();
+ }
+ }
+
putPage("/wot/rules", new StaticPage("CAcert Web of Trust Rules", AssurePage.class.getResourceAsStream("Rules.templ")), "CAcert Web of Trust");
baseTemplate = new Template(Gigi.class.getResource("Gigi.templ"));
rootMenu = new Menu("Main");
if (category == null) {
return;
}
+ Menu m = getMenu(category);
+ m.addItem(new PageMenuItem(p));
+
+ }
+
+ private Menu getMenu(String category) {
Menu m = null;
for (Menu menu : categories) {
if (menu.getMenuName().equals(category)) {
m = new Menu(category);
categories.add(m);
}
- m.addItem(new PageMenuItem(p));
-
+ return m;
}
private static String staticTemplateVarHttp;
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());
+ }
resp.setContentType("text/html; charset=utf-8");
baseTemplate.output(resp.getWriter(), Page.getLanguage(req), vars);
} else {