/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.security.web; import java.util.ArrayList; import java.util.List; import org.apache.wicket.extensions.markup.html.tabs.AbstractTab; import org.apache.wicket.extensions.markup.html.tabs.ITab; import org.apache.wicket.extensions.markup.html.tabs.TabbedPanel; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.StringResourceModel; import org.geoserver.security.web.role.RoleServicesPanel; import org.geoserver.security.web.role.RoleServicesTogglePanel; import org.geoserver.security.web.user.UserPanel; import org.geoserver.security.web.usergroup.UserGroupServicesTogglePanel; import org.geoserver.security.web.usergroup.UserGroupServicesPanel; import org.geoserver.web.ComponentAuthorizer; import org.geoserver.web.wicket.HelpLink; /** * Main menu page for user, group, and role services. * * @author Justin Deoliveira, OpenGeo */ public class UserGroupRoleServicesPage extends AbstractSecurityPage { public UserGroupRoleServicesPage() { //add(new ServicesPanel("panel")); List<ITab> tabs = new ArrayList(); tabs.add(new AbstractTab(new StringResourceModel("services", this, null)) { @Override public Panel getPanel(String panelId) { return new ServicesPanel(panelId); } }); tabs.add(new AbstractTab(new StringResourceModel("usersgroups", this, null)) { @Override public Panel getPanel(String panelId) { return new UsersGroupsPanel(panelId); } }); tabs.add(new AbstractTab(new StringResourceModel("roles", this, null)) { @Override public Panel getPanel(String panelId) { return new RolesPanel(panelId); } }); add(new TabbedPanel("panel", tabs)); } @Override protected ComponentAuthorizer getPageAuthorizer() { return new GroupAdminComponentAuthorizer(); } class ServicesPanel extends Panel { public ServicesPanel(String id) { super(id); add(new UserGroupServicesPanel("userGroupServices")); add(new HelpLink("userGroupServicesHelp").setDialog(dialog)); add(new RoleServicesPanel("roleServices")); add(new HelpLink("roleServicesHelp").setDialog(dialog)); } } class UsersGroupsPanel extends Panel { public UsersGroupsPanel(String id) { super(id); add(new UserGroupServicesTogglePanel("usersgroups")); } } class RolesPanel extends Panel { public RolesPanel(String id) { super(id); add(new RoleServicesTogglePanel("roles")); } } }