ADORSYS-GIS / ledgers

4 stars 4 forks source link

Define Entity ManagerAccess #19

Open francis-pouatcha opened 2 weeks ago

francis-pouatcha commented 2 weeks ago

Entity: ManagerAccess

Overview:

ManagerAccess is an essential entity in the bank account access management model, responsible for managing access to the account. This role grants specific individuals or entities (typically managers within an organization or a legal representative) the ability to manage permissions and access levels for other users. While the ManagerAccess entity allows for extensive control over who can interact with the account, it may not grant direct operational control over the account itself, depending on the defined permissions.

Key Characteristics:

  1. Access Control Management:

    • The primary responsibility of users with ManagerAccess is to manage the roles and permissions of other individuals or entities that require access to the account.
    • They can create, modify, or revoke access for roles such as AgentAccess, AuditorAccess, and PoAAccess, ensuring that the appropriate users have the required level of access.
    • ManagerAccess users typically operate within the scope defined by the SeniorManagerAccess, who oversees their actions.
  2. Delegated Access:

    • Users with ManagerAccess are delegated authority by a SeniorManagerAccess user.
    • They are entrusted to ensure that access is distributed according to organizational needs or individual permissions.
    • While they can manage access, their own permissions may not extend to executing transactions or viewing sensitive account information unless explicitly allowed.
  3. Permission Management:

    • ManagerAccess users have the capability to:
      • Grant access to other roles like AgentAccess, AuditorAccess, or create new access based on Power of Attorney (PoAAccess).
      • Modify the scope of access for existing users, adjusting their permissions based on the organization's needs or the account holder's instructions.
      • Revoke or suspend access for individuals no longer needing it (e.g., employees leaving an organization or partners completing their duties).
    • These actions help ensure a secure and flexible management system for account access.
  4. Operational Limitations:

    • Although ManagerAccess is primarily focused on managing access permissions, the user with this role may have restricted direct interaction with the account, depending on the access configuration.
    • Direct operational tasks, such as transferring funds, viewing the full account balance, or approving payments, are typically not granted unless the scope of the manager's access includes these permissions.
    • The scope field of the ManagerAccess entity allows fine-grained control over what a manager can or cannot do.
  5. Scope of Permissions:

    • The scope field defines the specific actions the ManagerAccess user is permitted to perform. These may include:
      • Manage Access: The ability to add, modify, or remove access for other users.
      • View Account Details: Optional permission allowing the manager to view the account's balance or transaction history, depending on their role.
      • Execute Transactions: In certain cases, the manager might be allowed to approve or initiate transactions, but this is typically reserved for more trusted or senior roles.
    • The scope is critical for customizing each manager's responsibilities and ensuring that no excess permissions are granted.
  6. Weight:

    • The weight attribute determines the extent of control a ManagerAccess user has. For instance:
      • A manager with a weight of 1 might have full authority to manage access and even perform operational tasks (if allowed by scope).
      • A manager with a lower weight (e.g., 0.5) may only have partial control, such as managing access but not viewing sensitive account details or making transactions.
    • This allows for flexible delegation of duties based on seniority or organizational structure.
  7. Status:

    • Like other access entities, ManagerAccess can have different statuses:
      • Active: The manager can fully perform their role as defined by their access scope.
      • Restricted: The manager's permissions might be temporarily reduced, limiting their ability to add or remove access (e.g., during an internal audit).
      • Suspended: The manager can no longer manage access, typically due to role changes or security concerns.
    • The status ensures that ManagerAccess can be dynamically adjusted based on organizational needs and security requirements.
  8. Accountability and Logging:

    • Every action taken by a user with ManagerAccess is logged to maintain a robust audit trail. This includes:
      • The creation of new access roles for other users.
      • Modifications to existing access permissions.
      • Suspensions or revocations of access.
    • These logs are crucial for maintaining transparency and accountability, particularly in complex organizational structures.

Example Workflow for ManagerAccess:

  1. Granting Access to an Auditor:

    • A ManagerAccess user identifies the need to provide an external auditor with read-only access to a bank account.
    • They create an AuditorAccess entry, specifying the scope as read-only and limiting access to account details but not permissions or transaction initiation.
    • This allows the auditor to perform their duties without the risk of unauthorized account changes.
  2. Modifying Access for an Agent:

    • A company hires a new financial agent, and the ManagerAccess user creates an AgentAccess entity, granting the agent the ability to perform transactions on behalf of the account holder.
    • The manager specifies that the agent cannot manage access (restricted by scope) but can act in specific agency processes.
  3. Suspending Access:

    • A manager determines that a user's access needs to be revoked due to a role change or completion of duties.
    • They suspend the PoAAccess for a legal representative who no longer needs access to the account.
    • The suspended access prevents the representative from making any further changes or transactions, ensuring security.

Role in the Organizational Hierarchy:

Key Considerations for ManagerAccess:

Possible Scenarios of Suspension:

Key Scenarios for ManagerAccess:

yvanhenang commented 1 week ago

Here's the structure I found before continuing, I wanted it to be validated by the team

erDiagram
    ManagerAccess {
        Long id
        String scope
        double weight
        String status
        Long seniorManagerAccessId
    }

    SeniorManagerAccess {
        Long id
        String name
    }

    HolderAccess {
        Long id
        String name
    }

    AgentAccess {
        Long id
        String name
    }

    AuditorAccess {
        Long id
        String name
    }

    PoAAccess {
        Long id
        String name
    }

    ManagerAccess ||--o{ SeniorManagerAccess : "supervised by"
    ManagerAccess ||--o{ HolderAccess : "granted by"
    ManagerAccess ||--o{ AgentAccess : "manages"
    ManagerAccess ||--o{ AuditorAccess : "manages"
    ManagerAccess ||--o{ PoAAccess : "manages"