/* (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.role;
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.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.geoserver.security.config.SecurityRoleServiceConfig;
import org.geoserver.security.web.SecurityNamedServicePanel;
import org.geoserver.security.web.SecurityNamedServiceTabbedPanel;
/**
* Base class for role service panels.
*
* @author Justin Deoliveira, OpenGeo
*/
public class RoleServicePanel<T extends SecurityRoleServiceConfig>
extends SecurityNamedServicePanel<T> implements SecurityNamedServiceTabbedPanel<T>{
public RoleServicePanel(String id, IModel<T> model) {
super(id, model);
add(new RoleChoice("adminRoleName", model));
add(new RoleChoice("groupAdminRoleName", model));
}
@Override
public List<ITab> createTabs(final IModel<T> model) {
List<ITab> tabs = new ArrayList<ITab>();
tabs.add(new AbstractTab(new StringResourceModel("roles", this, null)) {
@Override
public Panel getPanel(String panelId) {
return new RolePanel(panelId, model.getObject().getName());
}
});
return tabs;
}
@Override
public void doSave(T config) throws Exception {
getSecurityManager().saveRoleService(config);
}
public void doLoad(T config) throws Exception {
getSecurityManager().loadRoleService(config.getName());
};
}