From 3e6dd33b4c128cdc350cdf5bdf01a65e4e767069 Mon Sep 17 00:00:00 2001 From: Dmitriy Kopylenko Date: Mon, 25 Jun 2018 08:52:30 -0400 Subject: [PATCH] SHIBUI-521(545): work in progress --- .../ui/controller/MetadataFiltersController.java | 2 +- .../ui/controller/MetadataResolversController.java | 4 +++- .../ui/domain/filters/EntityAttributesFilter.java | 2 +- .../admin/ui/domain/filters/MetadataFilter.java | 4 ++++ .../ui/domain/resolvers/MetadataResolver.java | 4 ++++ .../MetadataFiltersControllerTests.groovy | 14 +++++++------- 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java index 65b53baac..75eea0984 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersController.java @@ -179,7 +179,7 @@ else if(filterWithUpdatedData instanceof RequiredValidUntilFilter) { private static URI getResourceUriFor(MetadataResolver mr, String filterResourceId) { return ServletUriComponentsBuilder - .fromCurrentServletMapping().path("/api/MetadataResolver/") + .fromCurrentServletMapping().path("/api/MetadataResolvers/") .pathSegment(mr.getResourceId()) .pathSegment("Filters") .pathSegment(filterResourceId) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java index 735082ba7..0078284e1 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java @@ -49,8 +49,10 @@ public ResponseEntity getOne(@PathVariable String resourceId) { @PostMapping("/MetadataResolvers") @Transactional public ResponseEntity create(@RequestBody MetadataResolver newResolver) { - //TODO disregard attached filters if any sent from UI? + //TODO: we are disregarding attached filters if any sent from UI below. //Only deal with filters via filters endpoints? + newResolver.clearAllFilters(); + MetadataResolver persistedResolver = resolverRepository.save(newResolver); persistedResolver.updateVersion(); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java index 7b267d1ee..0208f92c4 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/EntityAttributesFilter.java @@ -55,7 +55,7 @@ public EntityAttributesFilter() { public void intoTransientRepresentation() { this.attributeRelease = getAttributeReleaseListFromAttributeList(this.attributes); this.relyingPartyOverrides = getRelyingPartyOverridesRepresentationFromAttributeList(attributes); - setVersion(hashCode()); + updateVersion(); } @PrePersist diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/MetadataFilter.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/MetadataFilter.java index 3702bba3d..0473a4114 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/MetadataFilter.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/filters/MetadataFilter.java @@ -46,4 +46,8 @@ public class MetadataFilter extends AbstractAuditable { @Transient private int version; + + public void updateVersion() { + this.version = hashCode(); + } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java index 4dae0762b..adbb30f0d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java @@ -68,4 +68,8 @@ public class MetadataResolver extends AbstractAuditable { public void updateVersion() { this.version = hashCode(); } + + public void clearAllFilters() { + this.metadataFilters.clear(); + } } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy index 53cfb6a01..3cd5f00c0 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataFiltersControllerTests.groovy @@ -56,7 +56,7 @@ class MetadataFiltersControllerTests extends Specification { def mockMvc - def mockFilterService = Mock(FilterService) + static BASE_URI = '/api/MetadataResolvers' def setup() { randomGenerator = new RandomGenerator() @@ -93,7 +93,7 @@ class MetadataFiltersControllerTests extends Specification { def expectedResponseContentType = APPLICATION_JSON_UTF8 when: - def result = mockMvc.perform(get('/api/MetadataResolver/foo/Filters')) + def result = mockMvc.perform(get("$BASE_URI/foo/Filters")) println(mapper.writeValueAsString(expectedContent)) then: @@ -114,7 +114,7 @@ class MetadataFiltersControllerTests extends Specification { def expectedResponseContentType = APPLICATION_JSON_UTF8 when: - def result = mockMvc.perform(get("/api/MetadataResolver/foo/Filters/$expectedResourceId")) + def result = mockMvc.perform(get("$BASE_URI/foo/Filters/$expectedResourceId")) then: result.andExpect(expectedHttpResponseStatus) @@ -139,7 +139,7 @@ class MetadataFiltersControllerTests extends Specification { def expectedMetadataResolverUUID = metadataResolver.getResourceId() def expectedFilterUUID = randomFilter.getResourceId() def expectedResponseHeader = 'Location' - def expectedResponseHeaderValue = "/api/MetadataResolver/$expectedMetadataResolverUUID/Filters/$expectedFilterUUID" + def expectedResponseHeaderValue = "$BASE_URI/$expectedMetadataResolverUUID/Filters/$expectedFilterUUID" def expectedJsonBody = mapper.writeValueAsString(randomFilter) def postedJsonBody = expectedJsonBody - ~/"id":.*?,/ // remove the "id:," println postedJsonBody @@ -148,7 +148,7 @@ class MetadataFiltersControllerTests extends Specification { when: def result = mockMvc.perform( - post('/api/MetadataResolver/foo/Filters') + post("$BASE_URI/foo/Filters") .contentType(APPLICATION_JSON_UTF8) .content(postedJsonBody)) @@ -182,7 +182,7 @@ class MetadataFiltersControllerTests extends Specification { when: def result = mockMvc.perform( - put("/api/MetadataResolver/foo/Filters/$filterUUID") + put("$BASE_URI/foo/Filters/$filterUUID") .contentType(APPLICATION_JSON_UTF8) .content(postedJsonBody)) @@ -212,7 +212,7 @@ class MetadataFiltersControllerTests extends Specification { when: def result = mockMvc.perform( - put("/api/MetadataResolver/foo/Filters/$filterUUID") + put("$BASE_URI/foo/Filters/$filterUUID") .contentType(APPLICATION_JSON_UTF8) .content(postedJsonBody))