diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java index fe0c2d41a..15416b8b6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/DangerController.java @@ -1,9 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.controller; -import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository; -import edu.internet2.tier.shibboleth.admin.ui.repository.FilterRepository; -import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; -import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolversPositionOrderContainerRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -11,26 +8,41 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; +import edu.internet2.tier.shibboleth.admin.ui.repository.FilterRepository; +import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository; +import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolversPositionOrderContainerRepository; +import edu.internet2.tier.shibboleth.admin.ui.service.EntityDescriptorService; + @Controller @RequestMapping(value = "/api/heheheheheheheWipeout") @Profile("very-dangerous") public class DangerController { - private final MetadataResolverRepository metadataResolverRepository; - private final EntityDescriptorRepository entityDescriptorRepository; - private final FilterRepository filterRepository; - private final MetadataResolversPositionOrderContainerRepository metadataResolversPositionOrderContainerRepository; - - public DangerController(final MetadataResolverRepository metadataResolverRepository, final EntityDescriptorRepository entityDescriptorRepository, final FilterRepository filterRepository, final MetadataResolversPositionOrderContainerRepository metadataResolversPositionOrderContainerRepository) { - this.metadataResolverRepository = metadataResolverRepository; - this.entityDescriptorRepository = entityDescriptorRepository; - this.filterRepository = filterRepository; - this.metadataResolversPositionOrderContainerRepository = metadataResolversPositionOrderContainerRepository; - } + @Autowired + private EntityDescriptorService entityDescriptorService; + + @Autowired + private FilterRepository filterRepository; + + @Autowired + private MetadataResolverRepository metadataResolverRepository; + + @Autowired + private MetadataResolversPositionOrderContainerRepository metadataResolversPositionOrderContainerRepository; @Transactional @GetMapping - public ResponseEntity wipeOut() { - this.entityDescriptorRepository.deleteAll(); + public ResponseEntity wipeOut() throws ForbiddenException { + entityDescriptorService.getAllRepresentationsBasedOnUserAccess().forEach(edr -> { + try { + edr.setServiceEnabled(false); + edr = entityDescriptorService.update(edr); + entityDescriptorService.delete(edr.getId()); + } + catch (Throwable e) { + } + }); + this.metadataResolverRepository.deleteAll(); this.filterRepository.deleteAll(); this.metadataResolversPositionOrderContainerRepository.deleteAll();