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-consumer-facing.git
commit 80095dc0003f6f8c82a14b84f156b9b4e26dae3e Merge: 81cca62 4d393b4 Author: Aman-Mittal <[email protected]> AuthorDate: Thu Jul 23 16:22:37 2026 +0530 Merge pull request #55 from edk12564/user-profile Implement User Profile and Summary features consumer/build.gradle | 65 +++++ .../api/AuthenticationCommandController.java | 41 +-- .../service/AuthenticationCommandService.java | 5 + .../service/AuthenticationCommandServiceImpl.java | 22 ++ .../service/BeneficiariesQueryServiceImpl.java | 2 +- .../infrastructure/access/data/ActionPolicies.java | 17 +- .../infrastructure/access/data/ConsumerAction.java | 8 +- .../access/data/PrincipalUserData.java} | 12 +- .../exception/AccessUserNotFoundException.java} | 10 +- .../repository/PrincipalUserRepository.java} | 18 +- .../access/service/AccessPolicyEvaluator.java | 1 - .../infrastructure/access/service/JwtDenylist.java | 28 ++ .../service}/UserClientResolver.java | 17 +- .../consumer/infrastructure/configs/JwtConfig.java | 3 +- .../infrastructure/configs/SecurityConfig.java | 32 ++- .../validation/PasswordPolicy.java} | 15 +- .../infrastructure/web/AuthCookieFactory.java | 76 ++++++ .../loans/command/api/LoansCommandController.java | 40 --- .../LoanChargePaymentInvalidException.java | 36 --- ...nChargePaymentUpstreamUnavailableException.java | 32 --- .../loans/command/service/LoansCommandService.java | 8 - .../command/service/LoansCommandServiceImpl.java | 100 ------- .../loans/query/service/LoansQueryServiceImpl.java | 2 +- .../consumer/otp/command/data/OtpConstants.java | 1 + .../command/repository/OtpCommandRepository.java | 21 +- .../otp/command/service/OtpCommandServiceImpl.java | 6 + .../data/SubmitRegistrationCommandRequest.java | 5 +- .../command/api/SavingsCommandController.java | 86 ------ .../SavingsChargePaymentChallengeCommandData.java | 43 --- .../SavingsChargePaymentInvalidException.java | 36 --- ...SavingsChargePaymentStepUpInvalidException.java | 32 --- ...sChargePaymentUpstreamUnavailableException.java | 32 --- .../command/service/SavingsCommandService.java | 33 --- .../command/service/SavingsCommandServiceImpl.java | 150 ---------- .../savings/query/api/SavingsQueryController.java | 8 +- .../query/data/SavingsTransactionSearchQuery.java | 4 +- .../query/service/SavingsQueryServiceImpl.java | 8 +- .../summary/query/api/SummaryQueryController.java | 45 +++ .../query/data/AccountsSummaryQueryData.java} | 13 +- .../query/data/LoanSummaryItemQueryData.java} | 20 +- .../query/data/SavingsSummaryItemQueryData.java} | 16 +- .../SummaryUpstreamUnavailableException.java} | 10 +- .../query/service/SummaryQueryService.java} | 12 +- .../query/service/SummaryQueryServiceImpl.java | 118 ++++++++ .../user/command/api/UserCommandController.java | 114 ++++++++ .../data/ConfirmPasswordChangeCommand.java} | 8 +- .../data/ConfirmPasswordChangeCommandRequest.java} | 18 +- .../command/data/ForgotPasswordCommand.java} | 11 +- .../data/ForgotPasswordCommandRequest.java} | 12 +- .../data/InitiatePasswordChangeCommand.java} | 10 +- .../InitiatePasswordChangeCommandRequest.java} | 10 +- .../command/data/ResetPasswordCommand.java} | 12 +- .../command/data/ResetPasswordCommandRequest.java} | 25 +- .../command/data/UserCommandConstants.java} | 14 +- .../UserPasswordChangeChallengeCommandData.java} | 5 +- .../consumer/user/command/domain/User.java | 5 + .../exception/UserPasswordInvalidException.java} | 11 +- .../UserPasswordResetInvalidException.java} | 11 +- .../exception/UserStepUpInvalidException.java} | 9 +- .../command/repository/UserCommandRepository.java | 3 + .../user/command/service/UserCommandService.java | 15 + .../command/service/UserCommandServiceImpl.java | 127 +++++++++ .../user/query/api/UserQueryController.java | 81 ++++++ .../query/data/UserChargeQueryData.java} | 20 +- .../query/data/UserChargesQuery.java} | 11 +- .../query/data/UserChargesQueryResponse.java} | 13 +- .../query/data/UserImageQueryData.java} | 11 +- .../query/data/UserObligeeQueryData.java} | 18 +- .../query/data/UserProfileQueryData.java} | 17 +- .../UserChargeStatusInvalidException.java} | 10 +- .../exception/UserImageNotFoundException.java} | 10 +- .../UserUpstreamUnavailableException.java} | 10 +- .../user/query/service/UserQueryService.java | 15 + .../user/query/service/UserQueryServiceImpl.java | 149 ++++++++++ .../AuthenticationCommandServiceImplTest.java | 106 ++++++++ .../service/BeneficiariesQueryServiceImplTest.java | 2 +- .../cucumber/clients/AuthenticationClient.java | 12 + .../cucumber/clients/UserPasswordClient.java | 76 ++++++ .../consumer/cucumber/helpers/FineractSeeder.java | 14 +- .../cucumber/helpers/RegistrationHelper.java | 5 +- .../consumer/cucumber/steps/LoansSteps.java | 24 -- .../consumer/cucumber/steps/PasswordSteps.java | 293 ++++++++++++++++++++ .../consumer/cucumber/steps/ProfileSteps.java | 151 +++++++++++ .../consumer/cucumber/steps/SavingsSteps.java | 31 --- .../consumer/cucumber/steps/SummarySteps.java | 96 +++++++ .../access/service/AccessPolicyEvaluatorTest.java | 15 +- .../access/service/JwtDenylistTest.java | 67 ++++- .../service/LoansCommandServiceImplTest.java | 160 +---------- .../query/service/LoansQueryServiceImplTest.java | 2 +- .../repository/OtpCommandRepositoryTest.java | 34 ++- .../command/service/OtpCommandServiceImplTest.java | 38 ++- .../service/SavingsCommandServiceImplTest.java | 233 ---------------- .../query/service/SavingsQueryServiceImplTest.java | 2 +- .../query/service/SummaryQueryServiceImplTest.java | 198 ++++++++++++++ .../service/UserCommandServiceImplTest.java | 290 ++++++++++++++++++++ .../query/service/UserQueryServiceImplTest.java | 294 ++++++++++++++++++++ consumer/src/test/resources/features/loans.feature | 8 - .../src/test/resources/features/password.feature | 58 ++++ .../src/test/resources/features/profile.feature | 41 +++ .../src/test/resources/features/savings.feature | 8 - .../src/test/resources/features/summary.feature | 30 ++ frontend/public/i18n/en.json | 84 ++++-- frontend/public/i18n/hi.json | 84 ++++-- frontend/src/app/app.routes.ts | 10 + .../app/features/auth/forgot-password.component.ts | 215 +++++++++++++++ frontend/src/app/features/auth/login.component.ts | 7 + .../app/features/loans/charge-payment.component.ts | 133 --------- .../app/features/loans/loans-detail.component.ts | 39 +-- .../src/app/features/loans/loans.store.spec.ts | 31 +-- frontend/src/app/features/loans/loans.store.ts | 24 -- .../features/profile/change-password.component.ts | 172 ++++++++++++ .../src/app/features/profile/profile.component.ts | 301 +++++++++++++++++++++ .../src/app/features/profile/profile.store.spec.ts | 147 ++++++++++ frontend/src/app/features/profile/profile.store.ts | 132 +++++++++ .../features/savings/charge-payment.component.ts | 163 ----------- .../features/savings/savings-detail.component.ts | 57 +--- .../src/app/features/savings/savings.store.spec.ts | 26 +- frontend/src/app/features/savings/savings.store.ts | 35 +-- .../src/app/features/summary/summary.store.spec.ts | 57 +++- frontend/src/app/features/summary/summary.store.ts | 86 ++---- frontend/src/app/layout/shell.component.ts | 3 + 121 files changed, 4171 insertions(+), 1997 deletions(-)
