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