From 10143c31d5df2aa89e0ab172569053f8c1f6aab5 Mon Sep 17 00:00:00 2001 From: Menkene Koufan Date: Fri, 4 Oct 2024 12:44:12 +0100 Subject: [PATCH] chore: proper implementation for agent access --- .../ledgers/baam/db/domain/AccessScope.java | 11 ----- .../ledgers/baam/db/domain/AgentAccess.java | 40 +------------------ .../db/repository/AgentAccessRepository.java | 3 +- 3 files changed, 2 insertions(+), 52 deletions(-) diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AccessScope.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AccessScope.java index 094d36b84..ca929a86a 100644 --- a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AccessScope.java +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AccessScope.java @@ -12,15 +12,4 @@ public enum AccessScope { EXECUTE, DELETE; - public boolean allowsAction(String action) { - try { - AccessScope requestedAction = AccessScope.valueOf(action); - return this == requestedAction; - } catch (IllegalArgumentException e) { - // Action not allowed - return false; - } - } - - } diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AgentAccess.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AgentAccess.java index 641c268a0..40db25d8e 100644 --- a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AgentAccess.java +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/domain/AgentAccess.java @@ -8,44 +8,6 @@ public class AgentAccess extends BankAccountAccess { public AgentAccess() { - this.setStatus(AccessStatus.ACTIVE); - } - - // Impersonate the account holder to perform an action within the authorized scope - public void impersonate(String action) { - if (this.getStatus() != AccessStatus.ACTIVE) { - throw new IllegalStateException("Access is not active, impersonation is not allowed."); - } - if (this.getScope().allowsAction(action)) { - return; - // Perform the payment logic - } else { - throw new IllegalArgumentException("Action not permitted within the current scope."); - } - } - - // Revoke the agent's access - public void revokeAccess() { - this.setStatus(AccessStatus.SUSPENDED); - } - - // Activate agent access if it has been suspended - public void activateAccess() { - this.setStatus(AccessStatus.ACTIVE); - } - - // Restrict access temporarily without full revocation - public void restrictAccess() { - this.setStatus(AccessStatus.RESTRICTED); - } - - // Example usage scenario: Execute a payment on behalf of the account holder - public void executePayment(double amount) { - if (this.getStatus() == AccessStatus.ACTIVE && this.getScope().allowsAction("EXECUTE_PAYMENT")) { - return; - // Perform the payment logic - } else { - throw new IllegalStateException("Payment execution not allowed under the current access status or scope."); - } + super(); } } diff --git a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/AgentAccessRepository.java b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/AgentAccessRepository.java index b10984d40..4983ca562 100644 --- a/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/AgentAccessRepository.java +++ b/ledgers-bank-account-access-management/ledgers-bank-account-access-repository/src/main/java/de/adorsys/ledgers/baam/db/repository/AgentAccessRepository.java @@ -1,10 +1,9 @@ package de.adorsys.ledgers.baam.db.repository; +import de.adorsys.ledgers.baam.db.domain.AgentAccess; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import de.adorsys.ledgers.baam.db.domain.AgentAccess; - @Repository public interface AgentAccessRepository extends JpaRepository {