feat(users): OTP delivery method picker on user creation + post-login agreement
build-run / Run Lint, Build and Deploy (push) Canceled after 0s
Publish Image in Docker Hub / build (push) Canceled after 0s
Playwright E2E Tests / Run Playwright Tests (push) Canceled after 0s
Tests / testRigor (push) Canceled after 0s

Create User dialog now has a mandatory Email/Mobile OTP delivery method
picker (styled as a pill toggle) alongside the existing fields.

Adds a new post-login agreement acceptance dialog: right after the existing
2FA flow (TwoFactorAuthenticationComponent) succeeds, or immediately after
login for users without 2FA, the user must accept the bank's current
agreement/disclaimer at least once before reaching the app.

Also adds a "Manage User Agreement" admin screen (System section) to publish
versioned agreement text without a code deploy.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-24 16:20:46 +05:30
co-authored by Claude Sonnet 5
parent d0536dbb11
commit d334dd1669
18 changed files with 1356 additions and 16 deletions
+14
View File
@@ -218,6 +218,20 @@
<i class="fas fa-chevron-right sys-card__arrow"></i>
</a>
<!-- Manage User Agreement -->
<a class="sys-card" [routerLink]="['user-agreement']" *mifosxHasPermission="'READ_USERAGREEMENT'">
<div class="sys-card__icon sys-card__icon--emerald">
<i class="fas fa-file-contract"></i>
</div>
<div class="sys-card__body">
<h3 class="sys-card__title">{{ 'labels.heading.Manage User Agreement' | translate }}</h3>
<p class="sys-card__desc">
{{ 'labels.text.Publish versioned agreement text new users must accept on first login' | translate }}
</p>
</div>
<i class="fas fa-chevron-right sys-card__arrow"></i>
</a>
<!-- System Information -->
<a class="sys-card" [routerLink]="['system-information']">
<div class="sys-card__icon sys-card__icon--teal">