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

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


    from 48417d0  Merge pull request #361 from 
Aman-Mittal/fix/drop-google-fonts-dependency
     add 6ff8c08  feat(rbac): enforce permissions at the route boundary and 
close the GA gate
     add ebb00a1  test(e2e): generate the seeded user's password instead of 
writing one down
     add 99bbce7  fix(rbac): repair the two CI failures and type-check the e2e 
suite
     add b506396  chore: declare the e2e tsconfig's licence the way its 
siblings do
     add a5bb5be  feat(rbac): say what is missing instead of only refusing 
(#118, #139, #258)
     new 58bcf20  Merge pull request #368 from Aman-Mittal/feat/route-level-rbac

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .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(-)
 create mode 100644 DOCS/RBAC.md
 create mode 100644 e2e/rbac-backend-restricted-user.spec.ts
 create mode 100644 e2e/rbac-route-protection.spec.ts
 create mode 100644 e2e/utils/settled-route.ts
 create mode 100644 scripts/check-route-permissions.mjs
 create mode 100644 src/app/core/guards/permission.guard.spec.ts
 create mode 100644 src/app/core/guards/permission.guard.ts
 create mode 100644 src/app/features/errors/access-denied.component.spec.ts
 create mode 100644 src/app/features/errors/access-denied.component.ts
 create mode 100644 
src/app/shared/directives/requires-permission.directive.spec.ts
 create mode 100644 src/app/shared/directives/requires-permission.directive.ts
 create mode 100644 src/app/shared/pipes/permission-summary.pipe.spec.ts
 create mode 100644 src/app/shared/pipes/permission-summary.pipe.ts
 create mode 100644 tsconfig.e2e.json

Reply via email to