protected int addPermission(RequestContext requestContext, Map<String,Object> resultMap)
throws AJAXException
{
try
{
String type = getActionParameter(requestContext, "type");
if (type == null)
throw new AJAXException("Missing 'type' parameter");
String resource = getActionParameter(requestContext, "resource");
if (resource == null)
throw new AJAXException("Missing 'resource' parameter");
String actions = getActionParameter(requestContext, "actions");
if (actions == null)
throw new AJAXException("Missing 'actions' parameter");
JetspeedPermission permission = pm.newPermission(type, resource, actions);
if (pm.permissionExists(permission))
{
throw new AJAXException("Permission " + resource + " already exists");
}
pm.addPermission(permission);
String roleNames = getActionParameter(requestContext, "roles");
return updateRoles(permission, roleNames);
}
catch (SecurityException e)
{
throw new AJAXException(e.toString(), e);
}
}