/* (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.service;
import java.util.logging.Level;
import org.geoserver.security.impl.ServiceAccessRule;
import org.geoserver.security.impl.ServiceAccessRuleDAO;
import org.geoserver.web.wicket.ParamResourceModel;
/**
* Edits an existing rule
*/
public class EditServiceAccessRulePage extends AbstractServiceAccessRulePage {
ServiceAccessRule orig;
public EditServiceAccessRulePage(ServiceAccessRule rule) {
super(new ServiceAccessRule(rule));
//save the original
this.orig = rule;
//set drop downs to disabled
serviceChoice.setEnabled(false);
methodChoice.setEnabled(false);
}
@Override
protected void onFormSubmit(ServiceAccessRule rule) {
try {
ServiceAccessRuleDAO dao = ServiceAccessRuleDAO.get();
//update the original
orig.getRoles().clear();
orig.getRoles().addAll(rolesFormComponent.getRolesNamesForStoring());
dao.storeRules();
doReturn(ServiceAccessRulePage.class);
} catch(Exception e) {
LOGGER.log(Level.SEVERE, "Error occurred while saving rule ", e);
error(new ParamResourceModel("saveError", getPage(), e.getMessage()));
}
}
}