From edd6b87566083956f344aa0c50bf516181763dcd Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:30 +0100 Subject: [PATCH 01/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 9b801cb9b..fa3baa720 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,6 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 8c7e64ffad94666c76f44d4bd6d712f2bdc70c0c Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:49 +0100 Subject: [PATCH 02/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index fa3baa720..934d412cd 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,7 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() - .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 12136e0fdc0844df1ba0f7214093bed733738b9d Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:30 +0100 Subject: [PATCH 03/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 9b801cb9b..fa3baa720 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,6 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 4a32f55b6176a5b14cc56f07d4df0a5a64645bdc Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:49 +0100 Subject: [PATCH 04/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index fa3baa720..934d412cd 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,7 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() - .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 072c965593ef43217ca933d813f9e829e49cc382 Mon Sep 17 00:00:00 2001 From: yhampe Date: Thu, 21 Nov 2024 09:00:30 +0100 Subject: [PATCH 05/30] RED-9393 user stats controller added filter for soft deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 934d412cd..c58a78a25 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -8,6 +8,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; @@ -32,13 +33,14 @@ public class UserStatsController implements UserStatsResource { public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { - return new ResponseEntity(null, HttpStatus.NOT_FOUND); + throw new NotFoundException(String.format("The user with id %s is not found.", userId)); } List dossierMemberships = new ArrayList<>(); List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) + .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From c7a9c2ff11d2053255d49adfec3ee9fbd89a4c15 Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 22 Nov 2024 08:38:51 +0100 Subject: [PATCH 06/30] RED-9393 user stats controller added action roles --- .../v1/processor/roles/ApplicationRoles.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java index 05ced6d54..c2fbb290a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java @@ -26,7 +26,7 @@ public final class ApplicationRoles { GET_TENANTS, CREATE_TENANT, READ_USERS, - READ_ALL_USERS, + READ_ALL_USERS, READ_USER_STATS, WRITE_USERS, READ_SMTP_CONFIGURATION, WRITE_SMTP_CONFIGURATION, @@ -63,7 +63,7 @@ public final class ApplicationRoles { READ_COLORS, READ_DICTIONARY_TYPES, READ_DIGITAL_SIGNATURE, - READ_DOSSIER, + READ_DOSSIER, READ_USER_STATS, READ_DOSSIER_ATTRIBUTES, READ_DOSSIER_ATTRIBUTES_CONFIG, READ_DOSSIER_TEMPLATES, @@ -119,7 +119,7 @@ public final class ApplicationRoles { READ_FILE_ATTRIBUTES_CONFIG, READ_LEGAL_BASIS, READ_LICENSE_REPORT, - READ_NOTIFICATIONS, + READ_NOTIFICATIONS, READ_USER_STATS, READ_RULES, READ_DATA_FORMATS, READ_SMTP_CONFIGURATION, @@ -146,7 +146,7 @@ public final class ApplicationRoles { GET_TENANTS, DEPLOYMENT_INFO); - public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, WRITE_DOSSIER_ATTRIBUTES); + public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, READ_USER_STATS, WRITE_DOSSIER_ATTRIBUTES); public static final Set RED_USER_ADMIN_ACTION_ROLES = Sets.newHashSet(MANAGE_USER_PREFERENCES, READ_ALL_USERS, @@ -154,7 +154,7 @@ public final class ApplicationRoles { READ_GENERAL_CONFIGURATION, READ_GENERAL_CONFIGURATION, GET_SIMILAR_IMAGES, - READ_NOTIFICATIONS, + READ_NOTIFICATIONS, READ_USER_STATS, READ_USERS, UPDATE_MY_PROFILE, UPDATE_NOTIFICATIONS, From fa0e29095f3006fbd4656b92f1f140d33ea5c9ee Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 22 Nov 2024 08:43:29 +0100 Subject: [PATCH 07/30] RED-9393 user stats controller added authority check --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index c58a78a25..6350e3a65 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,10 +1,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; + import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -30,6 +33,7 @@ public class UserStatsController implements UserStatsResource { @Override + @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From c1fafaee6ec1036e31a84b98fe5e1537cc11f263 Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:30 +0100 Subject: [PATCH 08/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 9b801cb9b..fa3baa720 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,6 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 23078c0b6696e59549d3bb3a9eee00d3163f84ca Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:49 +0100 Subject: [PATCH 09/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index fa3baa720..934d412cd 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,7 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() - .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From afe793a5235bf367038ec010649f6b7f19905368 Mon Sep 17 00:00:00 2001 From: yhampe Date: Thu, 21 Nov 2024 09:00:30 +0100 Subject: [PATCH 10/30] RED-9393 user stats controller added filter for soft deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 934d412cd..c58a78a25 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -8,6 +8,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; @@ -32,13 +33,14 @@ public class UserStatsController implements UserStatsResource { public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { - return new ResponseEntity(null, HttpStatus.NOT_FOUND); + throw new NotFoundException(String.format("The user with id %s is not found.", userId)); } List dossierMemberships = new ArrayList<>(); List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) + .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 013d61b0d0714810d3a1849cee20a6120c258967 Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 22 Nov 2024 08:38:51 +0100 Subject: [PATCH 11/30] RED-9393 user stats controller added action roles --- .../v1/processor/roles/ApplicationRoles.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java index 05ced6d54..c2fbb290a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java @@ -26,7 +26,7 @@ public final class ApplicationRoles { GET_TENANTS, CREATE_TENANT, READ_USERS, - READ_ALL_USERS, + READ_ALL_USERS, READ_USER_STATS, WRITE_USERS, READ_SMTP_CONFIGURATION, WRITE_SMTP_CONFIGURATION, @@ -63,7 +63,7 @@ public final class ApplicationRoles { READ_COLORS, READ_DICTIONARY_TYPES, READ_DIGITAL_SIGNATURE, - READ_DOSSIER, + READ_DOSSIER, READ_USER_STATS, READ_DOSSIER_ATTRIBUTES, READ_DOSSIER_ATTRIBUTES_CONFIG, READ_DOSSIER_TEMPLATES, @@ -119,7 +119,7 @@ public final class ApplicationRoles { READ_FILE_ATTRIBUTES_CONFIG, READ_LEGAL_BASIS, READ_LICENSE_REPORT, - READ_NOTIFICATIONS, + READ_NOTIFICATIONS, READ_USER_STATS, READ_RULES, READ_DATA_FORMATS, READ_SMTP_CONFIGURATION, @@ -146,7 +146,7 @@ public final class ApplicationRoles { GET_TENANTS, DEPLOYMENT_INFO); - public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, WRITE_DOSSIER_ATTRIBUTES); + public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, READ_USER_STATS, WRITE_DOSSIER_ATTRIBUTES); public static final Set RED_USER_ADMIN_ACTION_ROLES = Sets.newHashSet(MANAGE_USER_PREFERENCES, READ_ALL_USERS, @@ -154,7 +154,7 @@ public final class ApplicationRoles { READ_GENERAL_CONFIGURATION, READ_GENERAL_CONFIGURATION, GET_SIMILAR_IMAGES, - READ_NOTIFICATIONS, + READ_NOTIFICATIONS, READ_USER_STATS, READ_USERS, UPDATE_MY_PROFILE, UPDATE_NOTIFICATIONS, From 3315a679a88be3909fd1d679804cac9fa22b83f4 Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 22 Nov 2024 08:43:29 +0100 Subject: [PATCH 12/30] RED-9393 user stats controller added authority check --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index c58a78a25..6350e3a65 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,10 +1,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; + import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -30,6 +33,7 @@ public class UserStatsController implements UserStatsResource { @Override + @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From 5bbcfdffc0494cc60bc2a8b9ff09c82525feed40 Mon Sep 17 00:00:00 2001 From: yhampe Date: Tue, 26 Nov 2024 15:19:37 +0100 Subject: [PATCH 13/30] RED-9393 user stats controller removed filter for soft deleted files --- .../v1/external/api/impl/controller/UserStatsController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 6350e3a65..0f7317de0 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -44,7 +44,6 @@ public class UserStatsController implements UserStatsResource { dossierService.getAllDossiers() .stream() .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) - .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 03d4f04b152fed2ea148efcb2ec8d59cf9df9d79 Mon Sep 17 00:00:00 2001 From: yhampe Date: Tue, 26 Nov 2024 15:22:50 +0100 Subject: [PATCH 14/30] RED-9393 user stats controller added filter for hard deleted files --- .../service/persistence/FileStatusPersistenceService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index 9311ab746..722cf4c5e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -603,7 +602,9 @@ public class FileStatusPersistenceService { public int getNumberOfAssignedFiles(String userId) { List files = fileRepository.findFilesByAssignee(userId); - return files.size(); + return files.stream() + .filter(fileEntity -> fileEntity.getHardDeletedTime() == null) + .collect(Collectors.toList()).size(); } From b3bc7bb0ac7ef66540350f04d2ee2e2b5305177f Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 27 Nov 2024 11:40:10 +0100 Subject: [PATCH 15/30] RED-9393 user stats controller --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 0f7317de0..71d8396ec 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,13 +1,10 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; - import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -33,7 +30,6 @@ public class UserStatsController implements UserStatsResource { @Override - @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From 684dc3418d28184c6f963e01580505265c7aee22 Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 27 Nov 2024 12:10:43 +0100 Subject: [PATCH 16/30] RED-9393 user stats controller --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 71d8396ec..0f7317de0 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,10 +1,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; + import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -30,6 +33,7 @@ public class UserStatsController implements UserStatsResource { @Override + @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From 9b74db96bad50255eb38a7b76e756642da011702 Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:30 +0100 Subject: [PATCH 17/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 9b801cb9b..fa3baa720 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,6 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 861f1e559f0a302552cd819edae98eefbad560df Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:49 +0100 Subject: [PATCH 18/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index fa3baa720..934d412cd 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -38,7 +38,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() - .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From d36cf3c7f2fac67824216590dcdf7cec43798736 Mon Sep 17 00:00:00 2001 From: yhampe Date: Thu, 21 Nov 2024 09:00:30 +0100 Subject: [PATCH 19/30] RED-9393 user stats controller added filter for soft deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 934d412cd..c58a78a25 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -8,6 +8,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; @@ -32,13 +33,14 @@ public class UserStatsController implements UserStatsResource { public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { - return new ResponseEntity(null, HttpStatus.NOT_FOUND); + throw new NotFoundException(String.format("The user with id %s is not found.", userId)); } List dossierMemberships = new ArrayList<>(); List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) + .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 59933f4a8827347e1058f1c49faaa2075a4205a7 Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 22 Nov 2024 08:38:51 +0100 Subject: [PATCH 20/30] RED-9393 user stats controller added action roles --- .../v1/processor/roles/ApplicationRoles.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java index 05ced6d54..c2fbb290a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java @@ -26,7 +26,7 @@ public final class ApplicationRoles { GET_TENANTS, CREATE_TENANT, READ_USERS, - READ_ALL_USERS, + READ_ALL_USERS, READ_USER_STATS, WRITE_USERS, READ_SMTP_CONFIGURATION, WRITE_SMTP_CONFIGURATION, @@ -63,7 +63,7 @@ public final class ApplicationRoles { READ_COLORS, READ_DICTIONARY_TYPES, READ_DIGITAL_SIGNATURE, - READ_DOSSIER, + READ_DOSSIER, READ_USER_STATS, READ_DOSSIER_ATTRIBUTES, READ_DOSSIER_ATTRIBUTES_CONFIG, READ_DOSSIER_TEMPLATES, @@ -119,7 +119,7 @@ public final class ApplicationRoles { READ_FILE_ATTRIBUTES_CONFIG, READ_LEGAL_BASIS, READ_LICENSE_REPORT, - READ_NOTIFICATIONS, + READ_NOTIFICATIONS, READ_USER_STATS, READ_RULES, READ_DATA_FORMATS, READ_SMTP_CONFIGURATION, @@ -146,7 +146,7 @@ public final class ApplicationRoles { GET_TENANTS, DEPLOYMENT_INFO); - public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, WRITE_DOSSIER_ATTRIBUTES); + public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, READ_USER_STATS, WRITE_DOSSIER_ATTRIBUTES); public static final Set RED_USER_ADMIN_ACTION_ROLES = Sets.newHashSet(MANAGE_USER_PREFERENCES, READ_ALL_USERS, @@ -154,7 +154,7 @@ public final class ApplicationRoles { READ_GENERAL_CONFIGURATION, READ_GENERAL_CONFIGURATION, GET_SIMILAR_IMAGES, - READ_NOTIFICATIONS, + READ_NOTIFICATIONS, READ_USER_STATS, READ_USERS, UPDATE_MY_PROFILE, UPDATE_NOTIFICATIONS, From 17b90b1b67f995bff44ff683f40b580782e1982f Mon Sep 17 00:00:00 2001 From: yhampe Date: Fri, 22 Nov 2024 08:43:29 +0100 Subject: [PATCH 21/30] RED-9393 user stats controller added authority check --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index c58a78a25..6350e3a65 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,10 +1,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; + import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -30,6 +33,7 @@ public class UserStatsController implements UserStatsResource { @Override + @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From 46cab2786a05fc2c6e7d29ecc77fc21c667c3e07 Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:30 +0100 Subject: [PATCH 22/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 6350e3a65..3f8409fd6 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -43,8 +43,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() - .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) - .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From efbfd26363fc0148be3d5a3f5efe620f372b6195 Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 20 Nov 2024 08:57:49 +0100 Subject: [PATCH 23/30] RED-9393 user stats controller added filter for hard deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 3f8409fd6..0f7317de0 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -43,7 +43,7 @@ public class UserStatsController implements UserStatsResource { List dossierOwnerships = new ArrayList<>(); dossierService.getAllDossiers() .stream() - .filter(dossierEntity -> dossierEntity.getHardDeletedTime() != null) + .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From f9a5b5aa01b2d66f1f40998dffb532d60e395bc2 Mon Sep 17 00:00:00 2001 From: yhampe Date: Thu, 21 Nov 2024 09:00:30 +0100 Subject: [PATCH 24/30] RED-9393 user stats controller added filter for soft deleted dossiers --- .../v1/external/api/impl/controller/UserStatsController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 0f7317de0..6350e3a65 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -44,6 +44,7 @@ public class UserStatsController implements UserStatsResource { dossierService.getAllDossiers() .stream() .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) + .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 71f4a78a165864c4fe87a8dc4a1133dd64911606 Mon Sep 17 00:00:00 2001 From: yhampe Date: Tue, 26 Nov 2024 15:19:37 +0100 Subject: [PATCH 25/30] RED-9393 user stats controller removed filter for soft deleted files --- .../v1/external/api/impl/controller/UserStatsController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 6350e3a65..0f7317de0 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -44,7 +44,6 @@ public class UserStatsController implements UserStatsResource { dossierService.getAllDossiers() .stream() .filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null) - .filter(dossierEntity -> dossierEntity.getSoftDeletedTime() == null) .forEach(d -> { if (dossierACLService.getMembers(d.getId()).contains(userId)) { dossierMemberships.add(d.getId()); From 5f98b16bc1e3b9b1cf3d21dd1aba0027048938ec Mon Sep 17 00:00:00 2001 From: yhampe Date: Tue, 26 Nov 2024 15:22:50 +0100 Subject: [PATCH 26/30] RED-9393 user stats controller added filter for hard deleted files --- .../service/persistence/FileStatusPersistenceService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index 9311ab746..722cf4c5e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -603,7 +602,9 @@ public class FileStatusPersistenceService { public int getNumberOfAssignedFiles(String userId) { List files = fileRepository.findFilesByAssignee(userId); - return files.size(); + return files.stream() + .filter(fileEntity -> fileEntity.getHardDeletedTime() == null) + .collect(Collectors.toList()).size(); } From b04bad60575c95aa194050f45af59a58574d8c20 Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 27 Nov 2024 11:40:10 +0100 Subject: [PATCH 27/30] RED-9393 user stats controller --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 0f7317de0..71d8396ec 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,13 +1,10 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; - import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -33,7 +30,6 @@ public class UserStatsController implements UserStatsResource { @Override - @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From ce27ac8d178f4fbcf7b2ef4d26511d2794af04dd Mon Sep 17 00:00:00 2001 From: yhampe Date: Wed, 27 Nov 2024 12:10:43 +0100 Subject: [PATCH 28/30] RED-9393 user stats controller --- .../v1/external/api/impl/controller/UserStatsController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java index 71d8396ec..0f7317de0 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UserStatsController.java @@ -1,10 +1,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_USER_STATS; + import java.util.ArrayList; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; @@ -30,6 +33,7 @@ public class UserStatsController implements UserStatsResource { @Override + @PreAuthorize("hasAuthority('" + READ_USER_STATS + "')") public ResponseEntity getUserStats(String userId) { if (userService.getUserById(userId).isEmpty()) { From 28c97b446ce5f80e610839a2c395e97f9acaed1d Mon Sep 17 00:00:00 2001 From: yhampe Date: Thu, 28 Nov 2024 08:48:07 +0100 Subject: [PATCH 29/30] RED-9393 user stats controller --- .../v1/processor/roles/ApplicationRoles.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java index c2fbb290a..906e33448 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java @@ -25,8 +25,7 @@ public final class ApplicationRoles { UPDATE_LICENSE, GET_TENANTS, CREATE_TENANT, - READ_USERS, - READ_ALL_USERS, READ_USER_STATS, + READ_USERS, READ_ALL_USERS, READ_USER_STATS, WRITE_USERS, READ_SMTP_CONFIGURATION, WRITE_SMTP_CONFIGURATION, @@ -62,8 +61,7 @@ public final class ApplicationRoles { PROCESS_MANUAL_REDACTION_REQUEST, READ_COLORS, READ_DICTIONARY_TYPES, - READ_DIGITAL_SIGNATURE, - READ_DOSSIER, READ_USER_STATS, + READ_DIGITAL_SIGNATURE, READ_DOSSIER, READ_DOSSIER_ATTRIBUTES, READ_DOSSIER_ATTRIBUTES_CONFIG, READ_DOSSIER_TEMPLATES, @@ -118,8 +116,7 @@ public final class ApplicationRoles { READ_DOSSIER_TEMPLATES, READ_FILE_ATTRIBUTES_CONFIG, READ_LEGAL_BASIS, - READ_LICENSE_REPORT, - READ_NOTIFICATIONS, READ_USER_STATS, + READ_LICENSE_REPORT, READ_NOTIFICATIONS, READ_USER_STATS, READ_RULES, READ_DATA_FORMATS, READ_SMTP_CONFIGURATION, @@ -146,15 +143,14 @@ public final class ApplicationRoles { GET_TENANTS, DEPLOYMENT_INFO); - public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, READ_USER_STATS, WRITE_DOSSIER_ATTRIBUTES); + public static final Set RED_MANAGER_ACTION_ROLES = Sets.newHashSet(ADD_UPDATE_DOSSIER, ARCHIVE_DOSSIER, DELETE_DOSSIER, WRITE_DOSSIER_ATTRIBUTES); public static final Set RED_USER_ADMIN_ACTION_ROLES = Sets.newHashSet(MANAGE_USER_PREFERENCES, READ_ALL_USERS, READ_APP_CONFIG, READ_GENERAL_CONFIGURATION, READ_GENERAL_CONFIGURATION, - GET_SIMILAR_IMAGES, - READ_NOTIFICATIONS, READ_USER_STATS, + GET_SIMILAR_IMAGES, READ_NOTIFICATIONS, READ_USERS, UPDATE_MY_PROFILE, UPDATE_NOTIFICATIONS, From 10f69631b01a17640b16d13c70d0fd9b00b92869 Mon Sep 17 00:00:00 2001 From: yhampe Date: Thu, 28 Nov 2024 20:16:28 +0100 Subject: [PATCH 30/30] RED-9393 user stats controller --- .../management/v1/processor/roles/ApplicationRoles.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java index 906e33448..d88c89e69 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/roles/ApplicationRoles.java @@ -151,7 +151,7 @@ public final class ApplicationRoles { READ_GENERAL_CONFIGURATION, READ_GENERAL_CONFIGURATION, GET_SIMILAR_IMAGES, READ_NOTIFICATIONS, - READ_USERS, + READ_USERS, READ_USER_STATS, UPDATE_MY_PROFILE, UPDATE_NOTIFICATIONS, WRITE_USERS,