package org.molgenis.ui.security; import org.molgenis.security.core.MolgenisPermissionService; import org.molgenis.ui.MolgenisUi; import org.molgenis.ui.MolgenisUiMenu; import static java.util.Objects.requireNonNull; public class MolgenisUiPermissionDecorator implements MolgenisUi { private final MolgenisUi molgenisUi; private final MolgenisPermissionService molgenisPermissionService; public MolgenisUiPermissionDecorator(MolgenisUi molgenisUi, MolgenisPermissionService molgenisPermissionService) { this.molgenisUi = requireNonNull(molgenisUi); this.molgenisPermissionService = requireNonNull(molgenisPermissionService); } @Override public MolgenisUiMenu getMenu() { MolgenisUiMenu menu = molgenisUi.getMenu(); return menu != null ? new MolgenisUiMenuPermissionDecorator(menu, molgenisPermissionService) : null; } @Override public MolgenisUiMenu getMenu(String menuId) { MolgenisUiMenu menu = molgenisUi.getMenu(menuId); return menu != null ? new MolgenisUiMenuPermissionDecorator(menu, molgenisPermissionService) : null; } }