From 3e4fe50dc71ed016c2cfedf805ca65ea1683f886 Mon Sep 17 00:00:00 2001 From: Cyrus <24922493+cyrus-dev@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:13:55 -0400 Subject: [PATCH] Testing out filtering --- .../manager/CACredentialRepository.java | 4 +++ .../CertificatePageController.java | 35 +++++++++---------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/CACredentialRepository.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/CACredentialRepository.java index 253d0a3d..815c53e4 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/CACredentialRepository.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/CACredentialRepository.java @@ -15,6 +15,10 @@ public interface CACredentialRepository extends JpaRepository findByArchiveFlag(boolean archiveFlag); Page findByArchiveFlag(boolean archiveFlag, Pageable pageable); List findBySubject(String subject); + Page findByArchiveFlagOrderBySubjectAsc(boolean archiveFlag, Pageable pageable); + Page findByArchiveFlagOrderBySubjectDesc(boolean archiveFlag, Pageable pageable); + Page findByArchiveFlagOrderByIssuerAsc(boolean archiveFlag, Pageable pageable); + Page findByArchiveFlagOrderByIssuerDesc(boolean archiveFlag, Pageable pageable); List findBySubjectSorted(String subject); List findBySubjectAndArchiveFlag(String subject, boolean archiveFlag); List findBySubjectSortedAndArchiveFlag(String subject, boolean archiveFlag); diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java index 32f610cf..ceeb0da4 100644 --- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java +++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java @@ -20,6 +20,7 @@ import hirs.attestationca.persist.entity.userdefined.certificate.attributes.Comp import hirs.attestationca.persist.util.CredentialHelper; import hirs.attestationca.portal.datatables.DataTableInput; import hirs.attestationca.portal.datatables.DataTableResponse; +import hirs.attestationca.portal.datatables.Order; import hirs.attestationca.portal.page.Page; import hirs.attestationca.portal.page.PageController; import hirs.attestationca.portal.page.PageMessages; @@ -214,24 +215,9 @@ public class CertificatePageController extends PageController { String orderColumnName = input.getOrderColumnName(); log.debug("Ordering on column: " + orderColumnName); - // check that the alert is not archived and that it is in the specified report - CriteriaModifier criteriaModifier = new CriteriaModifier() { - @Override - public void modify(final CriteriaQuery criteriaQuery) { - Session session = entityManager.unwrap(Session.class); - CriteriaBuilder cb = session.getCriteriaBuilder(); - Root rimRoot = criteriaQuery.from(Reference.class); - criteriaQuery.select(rimRoot).distinct(true).where(cb.isNull(rimRoot.get(Certificate.ARCHIVE_FIELD))); + Order order = input.getOrder().get(0); + - // add a device alias if this query includes the device table - // for getting the device (e.g. device name). - // use left join, since device may be null. Query will return all - // Certs of this type, whether it has a Device or not (device field may be null) - if (hasDeviceTableToJoin(certificateType)) { -// criteria.createAlias("device", "device", JoinType.LEFT_OUTER_JOIN); - } - } - }; int currentPage = input.getStart() / input.getLength(); Pageable paging = PageRequest.of(currentPage, input.getLength(), Sort.by(orderColumnName)); @@ -289,7 +275,20 @@ public class CertificatePageController extends PageController { return new DataTableResponse<>(records, input); } else if (certificateType.equals(TRUSTCHAIN)) { FilteredRecordsList records = new FilteredRecordsList<>(); - org.springframework.data.domain.Page pagedResult = this.caCredentialRepository.findByArchiveFlag(false, paging); + org.springframework.data.domain.Page pagedResult = this.caCredentialRepository.findByArchiveFlag(false, paging);; + if (orderColumnName.equalsIgnoreCase("Issuer")) { + if (order.isAscending()) { + pagedResult = this.caCredentialRepository.findByArchiveFlagOrderByIssuerAsc(false, paging); + } else { + pagedResult = this.caCredentialRepository.findByArchiveFlagOrderByIssuerDesc(false, paging); + } + } else if (orderColumnName.equalsIgnoreCase("Subject")) { + if (order.isAscending()) { + pagedResult = this.caCredentialRepository.findByArchiveFlagOrderBySubjectAsc(false, paging); + } else { + pagedResult = this.caCredentialRepository.findByArchiveFlagOrderBySubjectDesc(false, paging); + } + } if (pagedResult.hasContent()) { records.addAll(pagedResult.getContent());