X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FMenu.java;h=f351b7326c94c2310e9677091b9d2cb879fc5c74;hb=98dc0c64072a6f7f7916471f378cabf2d6c4fb87;hp=9ad9ba9919e2edd133f77e894c25b3d99cdff735;hpb=59198645fd008ca876d4e6eb9405bfd71a4e6951;p=gigi.git diff --git a/src/org/cacert/gigi/output/Menu.java b/src/org/cacert/gigi/output/Menu.java index 9ad9ba99..f351b732 100644 --- a/src/org/cacert/gigi/output/Menu.java +++ b/src/org/cacert/gigi/output/Menu.java @@ -5,37 +5,40 @@ import java.util.LinkedList; import java.util.Map; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.util.AuthorizationContext; public class Menu implements IMenuItem { - public static final String USER_VALUE = "user"; + public static final String AUTH_VALUE = "ac"; private String menuName; - private String id; - private IMenuItem[] content; private LinkedList prepare = new LinkedList(); - public Menu(String menuName, String id) { + public Menu(String menuName) { this.menuName = menuName; - this.id = id; } @Override public void output(PrintWriter out, Language l, Map vars) { - out.println("
"); - out.print("

+ "); - out.print(l.getTranslation(menuName)); - out.print("

"); - out.print("
    "); - for (Outputable mi : content) { - mi.output(out, l, vars); + boolean visible = false; + AuthorizationContext u = (AuthorizationContext) vars.get(AUTH_VALUE); + for (IMenuItem mi : getContent()) { + if (mi.isPermitted(u)) { + if ( !visible) { + visible = true; + out.print("
  • "); + out.print(l.getTranslation(menuName)); + out.print("
      "); + } + mi.output(out, l, vars); + } + } + if (visible) { + out.println("
  • "); } - out.println("
"); } public void addItem(IMenuItem item) { @@ -53,10 +56,25 @@ public class Menu implements IMenuItem { if (obj instanceof Menu) { return menuName.equals(((Menu) obj).getMenuName()); } - return super.equals(obj); + return false; + } + + @Override + public int hashCode() { + return menuName.hashCode(); } public String getMenuName() { return menuName; } + + @Override + public boolean isPermitted(AuthorizationContext ac) { + return true; + } + + public IMenuItem[] getContent() { + return content; + } + }