Aman-Mittal opened a new issue, #273:
URL: https://github.com/apache/fineract-backoffice-ui/issues/273
## Summary
The client detail view offers **Undo Rejection** on a rejected client and
**Undo Withdrawal** on a withdrawn one. Neither can ever succeed. Both post a
command name Fineract does not accept, so the platform rejects the request
before it looks at anything else.
`src/app/features/clients/client-view.component.ts` passes the menu's own
identifiers straight through as the command:
```ts
(click)="onClientAction('undoReject')"
(click)="onClientAction('undoWithdraw')"
```
Probed against a running instance:
```
POST /clients/2?command=undoReject
→ 400 "The query parameter command has an unsupported value of: undoReject"
POST /clients/2?command=undoWithdraw
→ 400 "The query parameter command has an unsupported value of:
undoWithdraw"
```
The names the platform recognises are `UndoRejection` and `UndoWithdrawal`.
With those, the same request body is accepted and only the domain rule is left
to apply:
```
POST /clients/2?command=UndoRejection
{"locale","dateFormat","reopenedDate"}
→ 403 "only rejected clients may be reactivated." ← the client under
test was Active
```
That 403 is the *correct* refusal for an active client, and it confirms the
payload — `reopenedDate` — is already right. Only the command name is wrong.
Command matching is case-insensitive, so `undorejection` works equally well;
`undoReject` is not a near-miss but a different word.
## Business Value
Rejecting a client application is a one-way door today. Rejection is often a
data-entry mistake — the wrong applicant picked from a search result, a KYC
document misread — and the whole point of the undo command is to correct it
without discarding the record.
Because the failure happens at the platform, the user sees a generic error
after filling in the dialog and picking a date, with nothing to suggest the
action is simply unavailable. The practical workaround is to create a duplicate
client, which leaves the institution with two records for one person and a
rejected shell that reporting still counts.
## Fix
Map the two menu identifiers to the platform command names when posting. The
payload, the dialog and the permission checks all stay as they are.
## How to verify
The bug reproduces only against a real backend — a mocked spec asserting the
current string would pass. Reject a client, then use **Undo Rejection** and
confirm the client returns to Pending.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]