@RequestMapping(value = "/rules/id/{id}", method = RequestMethod.POST) public @ResponseStatus(HttpStatus.OK) void update( @PathVariable("id") Long id, @RequestBody JaxbRule rule) { if (rule.getPriority() != null) { ShortRule priorityRule = adminService.getRuleByPriority(rule.getPriority().longValue()); if (priorityRule != null && priorityRule.getId() != id) { adminService.shift(rule.getPriority().longValue(), 1); } } Rule theRule = adminService.get(id); adminService.update(rule.toRule(theRule)); if (rule.getLimits() != null) { adminService.setLimits(id, rule.getLimits().toRuleLimits(theRule.getRuleLimits())); } if (rule.getLayerDetails() != null) { adminService.setDetails( id, rule.getLayerDetails().toLayerDetails(theRule.getLayerDetails())); } }
@RequestMapping(value = "/rules/id/{id}", method = RequestMethod.PUT) public @ResponseStatus(HttpStatus.OK) void clearAndUpdate( @PathVariable("id") Long id, @RequestBody JaxbRule rule) { if (rule.getPriority() != null) { ShortRule priorityRule = adminService.getRuleByPriority(rule.getPriority().longValue()); if (priorityRule != null && priorityRule.getId() != id) { adminService.shift(rule.getPriority().longValue(), 1); } } Rule theRule = new Rule(); theRule.setId(id); adminService.update(rule.toRule(theRule)); if (rule.getLimits() != null) { adminService.setLimits(id, rule.getLimits().toRuleLimits(null)); } else { adminService.setLimits(id, null); } if (rule.getLayerDetails() != null) { adminService.setDetails(id, rule.getLayerDetails().toLayerDetails(null)); } else { adminService.setDetails(id, null); } }
@RequestMapping( value = "/rules", method = RequestMethod.POST, consumes = { MediaType.TEXT_XML_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE, MediaTypeExtensions.TEXT_JSON_VALUE } ) @ResponseStatus(HttpStatus.CREATED) public ResponseEntity<Long> insert(@RequestBody(required = true) JaxbRule rule) { long priority = rule.getPriority() == null ? 0 : rule.getPriority().longValue(); if (adminService.getRuleByPriority(priority) != null) { adminService.shift(priority, 1); } Long id = adminService.insert(rule.toRule()); if (rule.getLimits() != null && rule.getAccess().equals("LIMIT")) { adminService.setLimits(id, rule.getLimits().toRuleLimits(null)); } if (rule.getLayerDetails() != null && !rule.getAccess().equals("LIMIT")) { adminService.setDetails(id, rule.getLayerDetails().toLayerDetails(null)); } return new ResponseEntity<Long>(id, HttpStatus.CREATED); }
/** * Helper method that will validate that the provided rules will match the provided priorities. */ private void validateRules(JaxbRuleList rules, long... expectedPriorities) { assertThat(rules, notNullValue()); assertThat(rules.getRules(), notNullValue()); assertThat(rules.getRules().size(), is(expectedPriorities.length)); for (int i = 0; i < expectedPriorities.length; i++) { assertThat(rules.getRules().get(i).getPriority(), is(expectedPriorities[i])); } } }
public Rule toRule() { Rule rule = new Rule(); if (getPriority() != null) { rule.setPriority(getPriority()); } rule.setAccess(GrantType.valueOf(getAccess())); rule.setUsername(getUserName()); rule.setRolename(getRoleName()); rule.setAddressRange( getAddressRange() != null ? new IPAddressRange(getAddressRange()) : null); rule.setService(getService()); rule.setRequest(getRequest()); rule.setWorkspace(getWorkspace()); rule.setLayer(getLayer()); rule.setId(id); return rule; }
public Rule toRule() { Rule rule = new Rule(); if (getPriority() != null) { rule.setPriority(getPriority()); } rule.setAccess(GrantType.valueOf(getAccess())); rule.setUsername(getUserName()); rule.setRolename(getRoleName()); rule.setAddressRange( getAddressRange() != null ? new IPAddressRange(getAddressRange()) : null); rule.setService(getService()); rule.setRequest(getRequest()); rule.setWorkspace(getWorkspace()); rule.setLayer(getLayer()); rule.setId(id); return rule; }
@Test public void testDeserialization() throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<Rule>" + "<access>LIMIT</access>" + "<layer>DE_USNG_UTM18</layer>" + "<limits>" + " <allowedArea>SRID=4326;MULTIPOLYGON (((-75 -90, -75 90, 75 90, 75 -90, -75 -90)))</allowedArea>" + " <catalogMode>HIDDEN</catalogMode>" + "</limits>" + "<priority>1</priority>" + "<workspace>geonode</workspace>" + "</Rule>"; ByteArrayInputStream bais = new ByteArrayInputStream(xml.getBytes("UTF-8")); JaxbRule rule = persister.load(bais, JaxbRule.class); assertNotNull(rule); assertEquals("LIMIT", rule.getAccess()); assertEquals("DE_USNG_UTM18", rule.getLayer()); assertEquals("geonode", rule.getWorkspace()); assertEquals(1, rule.getPriority().intValue()); assertNotNull(rule.getLimits()); assertEquals( "SRID=4326;MULTIPOLYGON (((-75 -90, -75 90, 75 90, 75 -90, -75 -90)))", rule.getLimits().getAllowedArea()); assertEquals("HIDDEN", rule.getLimits().getCatalogMode()); }
public Rule toRule(Rule rule) { if (getPriority() != null) { rule.setPriority(getPriority());
public Rule toRule(Rule rule) { if (getPriority() != null) { rule.setPriority(getPriority());
assertEquals(rule.getPriority().longValue(), realRule.getPriority()); assertEquals(rule.getUserName(), realRule.getUsername()); assertEquals(rule.getRoleName(), realRule.getRolename());