Skip to main content

Overview

This matrix shows all permissions in Agatabo, what actions they control, and which roles typically have them.

Permission Format

Format: resource:action Example: savings:write = permission to write (create/modify) savings records Scopes:
  • SELF: Access only own data
  • ANY: Access all organization data

Complete Permissions List

Organization Users

PermissionScopeDescriptionActions Allowed
organization_users:readSELFView own profileSee own name, email, phone, join date, roles
organization_users:readANYView all membersSee member list, profiles, contact info, join dates
organization_users:writeANYManage membersInvite, edit, deactivate members; update contact info
organization_user_roles:writeANYAssign rolesGrant/revoke roles and permissions to users

Savings & Deposits

PermissionScopeDescriptionActions Allowed
savings:readSELFView own savingsSee own deposit history, current balance
savings:readANYView all savingsSee all members’ deposits, balances, transaction history
savings:writeANYRecord deposits/withdrawalsCreate deposits, process withdrawals, edit unposted transactions

Loans

PermissionScopeDescriptionActions Allowed
loans:readSELFView own loansSee own loan details, installment schedules, payment history
loans:readANYView all loansSee all members’ loans, portfolio reports, delinquency status
loans:writeSELFApply for loansSubmit loan applications for self (if self-service enabled)
loans:writeANYManage all loansCreate, approve, modify, disburse loans for any member
loans:writeANYRecord loan paymentsPost payments against loans, allocate to principal/interest
loans:writeANYApply penaltiesAdd late fees and penalties to delinquent loans

Expenses

PermissionScopeDescriptionActions Allowed
expenses:readSELFView own expensesSee expense claims submitted by self (if applicable)
expenses:readANYView all expensesSee all organization expenses, categories, history
expenses:writeANYRecord expensesCreate expense records, categorize, attach receipts

Fixed Assets

PermissionScopeDescriptionActions Allowed
assets:readSELFView own assetsSee assets associated with self (rare use case)
assets:readANYView all assetsSee asset register, acquisition details, values
assets:writeANYManage assetsAdd assets, update values, record disposals

Reserves

PermissionScopeDescriptionActions Allowed
reserves:readSELFView own reserve dataLimited use (reserves are organization-level)
reserves:readANYView reservesSee reserve balances, allocation history
reserves:writeANYManage reservesCreate reserves, allocate (top-up), release funds

Dividends

PermissionScopeDescriptionActions Allowed
dividends:readSELFView own dividendsSee dividend amounts received, distribution history
dividends:readANYView all dividendsSee dividend pools, member allocations, distribution history
dividends:writeANYManage dividendsCreate dividend pools, calculate distributions, mark as distributed

General Ledger & Accounting

PermissionScopeDescriptionActions Allowed
ledger:readSELFView own ledger accountSee own savings account statement (member view)
ledger:readANYView all ledger accountsAccess chart of accounts, account balances, statements, trial balance
ledger:writeANYPost journal entriesCreate manual journal entries, post adjustments, corrections

Reports

Note: Reports generally don’t have specific permissions. Access depends on underlying data permissions. Examples:
  • Balance Sheet: Requires ledger:read (ANY)
  • Loans Outstanding: Requires loans:read (ANY)
  • Member savings statement: Requires savings:read (SELF or ANY)

Settings & Administration

PermissionScopeDescriptionActions Allowed
settings:readANYView organization settingsSee org name, currency, timezone, settings
settings:writeANYEdit organization settingsUpdate org name, notification preferences, configurations
settings:writeANYUpdate rates & configsModify interest rates, contribution schedules, policies
audit_logs:readANYView audit trailAccess complete activity log, filter by actor/action

Common Role Mappings

Note on Roles: The role mappings below are suggested configurations, not pre-defined system roles. Agatabo provides admin and member as protected default roles. Organizations create additional custom roles and assign permissions as needed to match their operational structure.

Administrator (Full Access)

PermissionScope
organization_users:readANY
organization_users:writeANY
organization_user_roles:writeANY
savings:readANY
savings:writeANY
loans:readANY
loans:writeANY
loans:writeANY
loans:writeANY
expenses:readANY
expenses:writeANY
assets:readANY
assets:writeANY
reserves:readANY
reserves:writeANY
dividends:readANY
dividends:writeANY
ledger:readANY
ledger:writeANY
settings:readANY
settings:writeANY
settings:writeANY
audit_logs:readANY
Can do: Everything

Treasurer

PermissionScope
organization_users:readANY
savings:readANY
savings:writeANY
expenses:readANY
expenses:writeANY
ledger:readANY
Can do: Record deposits, record expenses, view financial reports Cannot do: Create loans, assign roles, change settings

Loan Officer

PermissionScope
organization_users:readANY
savings:readANY (to check eligibility)
loans:readANY
loans:writeANY
loans:writeANY
loans:writeANY
Can do: Create/manage loans, record payments, apply penalties Cannot do: Record deposits/expenses, post journal entries, assign roles

Accountant

PermissionScope
organization_users:readANY
savings:readANY
loans:readANY
expenses:readANY
assets:readANY
reserves:readANY
dividends:readANY
ledger:readANY
ledger:writeANY (for adjustments)
audit_logs:readANY
Can do: View all financial data, run reports, post adjusting entries, view audit trail Cannot do: Record operational transactions (deposits, loans), assign roles, change settings

Member (Basic)

PermissionScope
organization_users:readSELF
savings:readSELF
loans:readSELF
ledger:readSELF
dividends:readSELF
Can do: View own savings, loans, account statement, dividends Cannot do: View other members’ data, record transactions, access settings

Permission Inheritance

Multiple roles:
  • If user has multiple roles, permissions are cumulative (union)
  • Example: User with both Treasurer + Loan Officer can record deposits AND create loans
Scope precedence:
  • If same permission granted with different scopes, ANY scope wins
  • Example: User has savings:read SELF from Member role + savings:read ANY from Treasurer role = user gets ANY scope

Special Cases

Self-Service Loan Applications

  • Member with loans:write (SELF scope) can submit loan applications
  • Requires administrator to configure self-service feature
  • Applications still need approval from loan committee

Restricted Journal Entries

  • ledger:write permission allows creating manual journal entries
  • Some entry types may be restricted (e.g., closing entries) even with permission
  • System prevents creating entries in closed periods regardless of permission

Organization-Level Settings

  • settings:write is powerful - grants ability to change currency, timezone, etc.
  • Should only be given to trusted administrators
  • Changes affect entire organization and all users

Permission Checks in Agatabo

Where permissions are checked:
  1. UI: Buttons/menus hidden if insufficient permission
  2. API: Server validates permission before executing action
  3. Reports: Filtered based on scope (SELF vs ANY)
Error messages:
  • “You don’t have permission to perform this action” = Missing permission entirely
  • “You can only access your own data” = Have permission but with SELF scope, trying to access others’ data

Need Help?

Understanding Permissions

Detailed permission guide

Member Roles

Managing roles