This is an automated email from the ASF dual-hosted git repository.

Aman-Mittal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fineract-backoffice-ui.git

commit 58bcf208e1f8720500c21979a0fde801ac742ea6
Merge: 48417d0 a5bb5be
Author: Aman-Mittal <[email protected]>
AuthorDate: Sun Aug 16 14:25:22 2026 +0530

    Merge pull request #368 from Aman-Mittal/feat/route-level-rbac
    
    feat(rbac): enforce permissions at the route boundary and close the GA gate

 .github/workflows/ci.yml                           |  37 ++
 .rat-excludes                                      |   1 +
 DOCS/RBAC.md                                       | 220 ++++++++++++
 e2e/accessibility.spec.ts                          |   2 +-
 e2e/rbac-backend-restricted-user.spec.ts           | 195 +++++++++++
 e2e/rbac-feature-flag.spec.ts                      |  26 +-
 e2e/rbac-route-protection.spec.ts                  | 295 ++++++++++++++++
 e2e/report-parameter-backend.spec.ts               |   5 +-
 e2e/utils/seed-api.ts                              | 142 ++++++++
 e2e/utils/settled-route.ts                         |  45 +++
 package.json                                       |   2 +
 playwright.config.ts                               |   1 +
 scripts/check-route-permissions.mjs                | 383 +++++++++++++++++++++
 security.md                                        |   7 +
 src/app/app.routes.ts                              |  23 +-
 src/app/core/adapters/api/api-surface.json         |  28 +-
 src/app/core/guards/permission.guard.spec.ts       | 178 ++++++++++
 src/app/core/guards/permission.guard.ts            | 132 +++++++
 .../core/interceptors/error.interceptor.spec.ts    |  62 +++-
 src/app/core/interceptors/error.interceptor.ts     |  37 +-
 src/app/core/services/auth.service.ts              |   5 +-
 .../services/navigation-config.service.spec.ts     |  92 ++++-
 src/app/core/services/navigation-config.service.ts | 290 ++++++++++++++--
 .../accounting-closures-list.component.ts          |   1 +
 .../accounting/accounting-rules-list.component.ts  |   1 +
 src/app/features/accounting/accounting.routes.ts   |  46 +++
 .../accounting/charges/charges-list.component.ts   |   1 +
 .../accounting/chart-of-accounts.component.ts      |   1 +
 .../financial-activity-mappings-list.component.ts  |   1 +
 .../accounting/journal-entries-list.component.ts   |   1 +
 .../provisioning-categories-list.component.ts      |   1 +
 .../provisioning-criteria-list.component.ts        |   1 +
 .../provisioning-entries-list.component.ts         |   1 +
 src/app/features/admin/admin.routes.ts             |  14 +
 .../features/calendars/calendars-list.component.ts |   1 +
 src/app/features/calendars/calendars.routes.ts     |   8 +
 src/app/features/campaigns/campaigns.routes.ts     |  16 +
 src/app/features/centers/center-view.component.ts  |  20 +-
 src/app/features/centers/centers-list.component.ts |   1 +
 src/app/features/centers/centers.routes.ts         |  16 +-
 .../charges/client-charges-list.component.ts       |   1 +
 src/app/features/clients/client-view.component.ts  |  62 ++--
 src/app/features/clients/clients.routes.ts         |  42 +++
 .../collateral/client-collateral-list.component.ts |   1 +
 .../tabs/client-family-members-list.component.ts   |   6 +-
 .../clients/tabs/client-notes-list.component.ts    |   6 +-
 .../dashboard/system-status.component.spec.ts      | 109 +++++-
 .../features/dashboard/system-status.component.ts  | 163 ++++++---
 .../errors/access-denied.component.spec.ts         | 127 +++++++
 src/app/features/errors/access-denied.component.ts | 150 ++++++++
 src/app/features/groups/group-view.component.ts    |  22 +-
 src/app/features/groups/groups-list.component.ts   |   1 +
 src/app/features/groups/groups.routes.ts           |  14 +
 src/app/features/interop/interop.routes.ts         |  12 +
 .../loans/charges/loan-charges-list.component.ts   |   1 +
 .../loans/collateral/collateral-list.component.ts  |   1 +
 .../loans/guarantors/guarantors-list.component.ts  |   1 +
 .../interest-pauses-list.component.ts              |   1 +
 src/app/features/loans/loan-view.component.ts      |  94 ++++-
 src/app/features/loans/loans-list.component.ts     |   2 +-
 src/app/features/loans/loans.routes.ts             |  53 ++-
 .../features/meetings/meetings-list.component.ts   |   1 +
 src/app/features/meetings/meetings.routes.ts       |   8 +
 .../account-number-formats-list.component.ts       |   1 +
 .../organization/funds/funds-list.component.ts     |   1 +
 .../organization/offices/offices-list.component.ts |   1 +
 .../features/organization/organization.routes.ts   |  41 ++-
 .../payment-types/payment-types-list.component.ts  |   1 +
 .../collateral-management-list.component.ts        |   1 +
 .../fixed-deposit-products-list.component.ts       |   1 +
 .../fixed-deposits-list.component.ts               |   1 +
 .../floating-rates-list.component.ts               |   1 +
 .../interest-rate-charts-list.component.ts         |   1 +
 .../loan-originators-list.component.ts             |   1 +
 .../products/loan-products-list.component.ts       |   1 +
 src/app/features/products/products.routes.ts       | 120 +++++++
 .../products/rates/rates-list.component.ts         |   1 +
 .../recurring-deposit-products-list.component.ts   |   1 +
 .../recurring-deposits-list.component.ts           |   1 +
 .../products/savings-account-view.component.ts     |  18 +-
 .../savings-charges-list.component.ts              |   1 +
 .../products/savings-products-list.component.ts    |   1 +
 .../share-dividends-list.component.ts              |   1 +
 .../shares/share-accounts-list.component.ts        |   1 +
 .../shares/share-products-list.component.ts        |   1 +
 .../tax-components-list.component.ts               |   1 +
 .../tax-groups/tax-groups-list.component.ts        |   1 +
 src/app/features/reporting/reporting.routes.ts     |   6 +
 .../security/roles/roles-list.component.ts         |   1 +
 src/app/features/security/security.routes.ts       |  16 +
 .../security/users/users-list.component.ts         |   1 +
 .../features/settings/holidays-list.component.ts   |   1 +
 src/app/features/settings/settings.routes.ts       |  12 +
 src/app/features/spm/spm.routes.ts                 |   8 +
 .../spm/surveys/spm-surveys-list.component.ts      |   1 +
 .../adhoc-query/adhoc-query-list.component.ts      |   1 +
 .../system/codes/code-values-list.component.ts     |   1 +
 .../features/system/codes/codes-list.component.ts  |   1 +
 .../delinquency-management.component.ts            |  12 +-
 .../entity-data-table-checks-list.component.ts     |   1 +
 .../entity-mapping-list.component.ts               |   1 +
 .../features/system/hooks/hooks-list.component.ts  |   1 +
 .../report-mailing-jobs-list.component.ts          |   1 +
 src/app/features/system/sms/sms-list.component.ts  |   1 +
 src/app/features/system/system.routes.ts           |  91 ++++-
 src/app/features/tasks/tasks.routes.ts             |   4 +
 .../tellers/cashiers/cashiers-list.component.ts    |   1 +
 src/app/features/tellers/tellers-list.component.ts |   1 +
 src/app/features/tellers/tellers.routes.ts         |  10 +
 src/app/features/transfers/transfers.routes.ts     |  14 +-
 .../breach/wc-breach-list.component.ts             |   1 +
 .../wc-loan-products-list.component.ts             |   1 +
 .../loans/wc-loans-list.component.ts               |   1 +
 .../near-breach/wc-near-breach-list.component.ts   |   1 +
 .../working-capital/working-capital.routes.ts      |  32 ++
 src/app/layout/sidebar.component.ts                |  39 ++-
 .../data-table/data-table.component.spec.ts        |  62 +++-
 .../components/data-table/data-table.component.ts  |  19 +-
 .../requires-permission.directive.spec.ts          | 179 ++++++++++
 .../directives/requires-permission.directive.ts    | 127 +++++++
 src/app/shared/index.ts                            |   2 +
 .../shared/pipes/permission-summary.pipe.spec.ts   | 111 ++++++
 src/app/shared/pipes/permission-summary.pipe.ts    | 197 +++++++++++
 src/app/testing/adapters.ts                        |  21 +-
 src/assets/i18n/en.json                            |  12 +-
 src/assets/i18n/hi.json                            |  12 +
 src/assets/i18n/ko.json                            |  12 +
 src/styles/_common.scss                            |  25 ++
 tsconfig.e2e.json                                  |  11 +
 129 files changed, 4215 insertions(+), 254 deletions(-)

Reply via email to