From fd441d91a015d7e590ca4ce856ea6c74605ba718 Mon Sep 17 00:00:00 2001 From: Menkene Koufan Date: Thu, 26 Sep 2024 17:06:24 +0100 Subject: [PATCH 1/4] Created SeniorManagerAccess entity --- .../baam/db/domain/SeniorManagerAccess.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java new file mode 100644 index 000000000..d0e251595 --- /dev/null +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2018-2023 adorsys GmbH and Co. KG + * All rights are reserved. + */ + +package de.adorsys.ledgers.baam.db.domain; + +import jakarta.persistence.*; +import java.util.HashMap; +import java.util.Map; + +@Entity +public class SeniorManagerAccess { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String name; + + @Enumerated(EnumType.STRING) + private AccessStatus status; + + @ElementCollection + private Map managerRoles = new HashMap<>(); + + // Constructor + public SeniorManagerAccess(String name) { + this.name = name; + this.status = AccessStatus.ACTIVE; + } + + // Default constructor for JPA + public SeniorManagerAccess() {} + + // Getters and Setters + //... + + // Methods + public void createManagerRole(Long managerId, String permissions) { + if (this.status != AccessStatus.ACTIVE) { + throw new IllegalStateException("Cannot create roles when status is not active."); + } + managerRoles.put(managerId, permissions); + } + + public void modifyManagerRole(Long managerId, String newPermissions) { + if (managerRoles.containsKey(managerId)) { + managerRoles.put(managerId, newPermissions); + } else { + throw new IllegalArgumentException("Manager role not found."); + } + } + + public void revokeManagerRole(Long managerId) { + if (managerRoles.containsKey(managerId)) { + managerRoles.remove(managerId); + } else { + throw new IllegalArgumentException("Manager role not found."); + } + } + + public void suspendAccess() { + this.status = AccessStatus.SUSPENDED; + } + + public void activateAccess() { + this.status = AccessStatus.ACTIVE; + } + } From b48ecf69ba76d22b8591550681ee5d1842b65c5f Mon Sep 17 00:00:00 2001 From: Menkene Koufan Date: Fri, 27 Sep 2024 08:39:30 +0100 Subject: [PATCH 2/4] Created SeniorManagerAccess repository --- .../repository/SeniorManagerAccessRepository.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/SeniorManagerAccessRepository.java diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/SeniorManagerAccessRepository.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/SeniorManagerAccessRepository.java new file mode 100644 index 000000000..055812097 --- /dev/null +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/SeniorManagerAccessRepository.java @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2018-2023 adorsys GmbH and Co. KG + * All rights are reserved. + */ + +package de.adorsys.ledgers.baam.db.repository; +import de.adorsys.ledgers.baam.db.domain.SeniorManagerAccess; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface SeniorManagerAccessRepository extends JpaRepository { + +} From 0ddd319605f7965ab7dc8dd28b0ae0687216f7f1 Mon Sep 17 00:00:00 2001 From: Menkene Koufan Date: Fri, 27 Sep 2024 12:11:20 +0100 Subject: [PATCH 3/4] Created test for SeniorManagerAccess repository --- .../db/domain/SeniorManagerAccessTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/test/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccessTest.java diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/test/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccessTest.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/test/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccessTest.java new file mode 100644 index 000000000..a9957b66a --- /dev/null +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/test/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccessTest.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2018-2023 adorsys GmbH and Co. KG + * All rights are reserved. + */ + +package de.adorsys.ledgers.baam.db.domain; + +import org.junit.jupiter.api.Test; +class SeniorManagerAccessTest { + + @Test + void createManagerRole() { + } + + @Test + void modifyManagerRole() { + } + + @Test + void revokeManagerRole() { + } + + @Test + void suspendAccess() { + } + + @Test + void activateAccess() { + } +} \ No newline at end of file From 6a39e24e28f136ca2bd452645a636d60b1ffab1f Mon Sep 17 00:00:00 2001 From: Menkene Koufan Date: Fri, 27 Sep 2024 12:12:03 +0100 Subject: [PATCH 4/4] Debugged failing pmd check --- .../baam/db/domain/SeniorManagerAccess.java | 17 ++++++++++------- .../ledgers-deposit-account-rest-api/pom.xml | 1 + .../ledgers-deposit-account-rest-server/pom.xml | 1 + 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java index d0e251595..ec46f3703 100644 --- a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/SeniorManagerAccess.java @@ -6,15 +6,18 @@ package de.adorsys.ledgers.baam.db.domain; import jakarta.persistence.*; +import lombok.Data; + import java.util.HashMap; import java.util.Map; @Entity +@Data public class SeniorManagerAccess { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private String id; private String name; @@ -22,12 +25,12 @@ public class SeniorManagerAccess { private AccessStatus status; @ElementCollection - private Map managerRoles = new HashMap<>(); + private Map managerRoles = new HashMap<>(); // Constructor - public SeniorManagerAccess(String name) { + public SeniorManagerAccess(String name, AccessStatus status) { this.name = name; - this.status = AccessStatus.ACTIVE; + this.status = status.ACTIVE; } // Default constructor for JPA @@ -37,14 +40,14 @@ public SeniorManagerAccess() {} //... // Methods - public void createManagerRole(Long managerId, String permissions) { + public void createManagerRole(String managerId, String permissions) { if (this.status != AccessStatus.ACTIVE) { throw new IllegalStateException("Cannot create roles when status is not active."); } managerRoles.put(managerId, permissions); } - public void modifyManagerRole(Long managerId, String newPermissions) { + public void modifyManagerRole(String managerId, String newPermissions) { if (managerRoles.containsKey(managerId)) { managerRoles.put(managerId, newPermissions); } else { @@ -52,7 +55,7 @@ public void modifyManagerRole(Long managerId, String newPermissions) { } } - public void revokeManagerRole(Long managerId) { + public void revokeManagerRole(String managerId) { if (managerRoles.containsKey(managerId)) { managerRoles.remove(managerId); } else { diff --git a/ledgers-deposit-account/ledgers-deposit-account-rest-api/pom.xml b/ledgers-deposit-account/ledgers-deposit-account-rest-api/pom.xml index 0cdb5e5ec..24737e12e 100644 --- a/ledgers-deposit-account/ledgers-deposit-account-rest-api/pom.xml +++ b/ledgers-deposit-account/ledgers-deposit-account-rest-api/pom.xml @@ -13,6 +13,7 @@ ledgers-deposit-account-rest-api + ../.. 17 17 UTF-8 diff --git a/ledgers-deposit-account/ledgers-deposit-account-rest-server/pom.xml b/ledgers-deposit-account/ledgers-deposit-account-rest-server/pom.xml index 2155279dc..a2740ca97 100644 --- a/ledgers-deposit-account/ledgers-deposit-account-rest-server/pom.xml +++ b/ledgers-deposit-account/ledgers-deposit-account-rest-server/pom.xml @@ -18,6 +18,7 @@ ledgers-deposit-account-rest-server + ../.. 17 17 UTF-8