Merge feature/Backend-DSC-MFA into feature/merge_update_code

Brings TOTP / Google Authenticator MFA factor (device mapping at
/v1/mfa/totp/setup + /verify, login via existing twofactor pipeline),
DSC-2FA login UI fix, Individual-only filter on guardian/nominee/family
link pickers, Title Case normalization on client names, and migration
0296 unique nominee per account type.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

# Conflicts:
#	.claude/settings.local.json
#	fineract-provider/logs/fineract.log
This commit is contained in:
Aditya
2026-05-15 17:54:49 +05:30
10 changed files with 3162 additions and 53614 deletions
@@ -28,6 +28,11 @@ public final class TwoFactorConstants {
public static final String SMS_DELIVERY_METHOD_NAME = "sms";
public static final String EMAIL_DELIVERY_METHOD_NAME = "email";
// TOTP / Google Authenticator. Surfaced in the same /v1/twofactor delivery-method list as
// sms/email so the UI offers it as a sibling option; verification is then code-vs-secret
// (no LincPay round-trip, no SMTP send). The factor row in m_user_mfa_factor.secret holds
// the base32 secret the user paired with their app via /v1/mfa/totp/setup + /verify.
public static final String TOTP_DELIVERY_METHOD_NAME = "totp";
public static final String BYPASS_TWO_FACTOR_PERMISSION = "BYPASS_TWOFACTOR";