diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java index f7cfb019a..065e4d9e3 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/EntityDescriptorController.java @@ -83,7 +83,7 @@ public ResponseEntity deleteOne(@PathVariable String resourceId) throws Forbi @GetMapping("/EntityDescriptors") @Transactional public ResponseEntity getAll() throws ForbiddenException { - return ResponseEntity.ok(entityDescriptorService.getAllRepresentationsBasedOnUserAccess()); + return ResponseEntity.ok(entityDescriptorService.getAllEntityDescriptorProjectionsBasedOnUserAccess()); } @GetMapping("/EntityDescriptor/{resourceId}/Versions") diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorProjection.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorProjection.java new file mode 100644 index 000000000..57cf02ab9 --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorProjection.java @@ -0,0 +1,19 @@ +package edu.internet2.tier.shibboleth.admin.ui.repository; + +import java.time.LocalDateTime; + +public interface EntityDescriptorProjection { + default String getId() { + return getResourceId(); + } + String getEntityID(); + default String getEntityId() { + return getEntityID(); + } + String getResourceId(); + String getServiceProviderName(); + String getCreatedBy(); + LocalDateTime getCreatedDate(); + boolean getServiceEnabled(); + String getIdOfOwner(); +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepository.java index 5e28e7d75..bb2b275d6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepository.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityDescriptorRepository.java @@ -12,6 +12,9 @@ * Repository to manage {@link EntityDescriptor} instances. */ public interface EntityDescriptorRepository extends JpaRepository { + List findAllBy(); + + List findAllByIdOfOwner(String ownerId); EntityDescriptor findByEntityID(String entityId); @@ -34,4 +37,4 @@ public interface EntityDescriptorRepository extends JpaRepository findAllByIdOfOwnerIsNull(); -} +} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/ProjectionIdAndName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/ProjectionIdAndName.java index 6731aea86..fca5ae8cd 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/ProjectionIdAndName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/ProjectionIdAndName.java @@ -1,6 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.repository; -public interface ProjectionIdAndName{ +public interface ProjectionIdAndName { String getResourceId(); + String getName(); } \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java index 6d66732b0..a5440b7fa 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/EntityDescriptorService.java @@ -3,10 +3,11 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute; import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor; import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.EntityDescriptorRepresentation; -import edu.internet2.tier.shibboleth.admin.ui.exception.PersistentEntityNotFound; import edu.internet2.tier.shibboleth.admin.ui.exception.ForbiddenException; import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException; import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; +import edu.internet2.tier.shibboleth.admin.ui.exception.PersistentEntityNotFound; +import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorProjection; import java.util.ConcurrentModificationException; import java.util.List; @@ -67,9 +68,9 @@ EntityDescriptorRepresentation createNew(EntityDescriptorRepresentation edRepres Iterable getAllDisabledAndNotOwnedByAdmin() throws ForbiddenException; /** - * @return a list of EntityDescriptorRepresentations that a user has the rights to access + * @return a list of EntityDescriptorProjections that a user has the rights to access */ - List getAllRepresentationsBasedOnUserAccess() throws ForbiddenException; + List getAllEntityDescriptorProjectionsBasedOnUserAccess() throws ForbiddenException; /** * Given a list of attributes, generate an AttributeReleaseList diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java index 6269020e8..441fa52af 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java @@ -21,6 +21,7 @@ import edu.internet2.tier.shibboleth.admin.ui.exception.InvalidPatternMatchException; import edu.internet2.tier.shibboleth.admin.ui.exception.ObjectIdExistsException; import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects; +import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorProjection; import edu.internet2.tier.shibboleth.admin.ui.repository.EntityDescriptorRepository; import edu.internet2.tier.shibboleth.admin.ui.security.model.Group; import edu.internet2.tier.shibboleth.admin.ui.security.model.Owner; @@ -373,16 +374,16 @@ public Iterable getAllDisabledAndNotOwnedByAdmin } @Override - public List getAllRepresentationsBasedOnUserAccess() throws ForbiddenException { + public List getAllEntityDescriptorProjectionsBasedOnUserAccess() throws ForbiddenException { switch (userService.getCurrentUserAccess()) { case ADMIN: - return entityDescriptorRepository.findAllStreamByCustomQuery().map(ed -> createRepresentationFromDescriptor(ed)) - .collect(Collectors.toList()); + List o = entityDescriptorRepository.findAllBy();//.map(edProjection -> createRepresentationFromDescriptor(edProjection)).collect(Collectors.toList()); + return o; case GROUP: User user = userService.getCurrentUser(); Group group = user.getGroup(); - return entityDescriptorRepository.findAllStreamByIdOfOwner(group.getOwnerId()) - .map(ed -> createRepresentationFromDescriptor(ed)).collect(Collectors.toList()); + List ed = entityDescriptorRepository.findAllByIdOfOwner(group.getOwnerId());//.map(ed -> createRepresentationFromDescriptor(ed)).collect(Collectors.toList()); + return ed; default: throw new ForbiddenException(); }