Skip to content

Allow administrators to reconsider resolved registrations - #510

Merged
Kerrycek merged 1 commit into
mainfrom
codex/review-resolved-registrations
Sep 24, 2026
Merged

Kerrycek merged 1 commit into
mainfrom
codex/review-resolved-registrations

Conversation

@Kerrycek

Copy link
Copy Markdown
Owner

English

An ignored, denied, approved or correction-pending registration previously showed no decision actions. Administrators can now reconsider these registrations through the existing Resolve API; actions targeting the current state are omitted, matching UserRequest#resolve.

The request state is captured when opening a decision and fetched again immediately before submission. A changed state, missing owner or failed fetch prevents the POST. Existing local mutation locks remain. Bulk operations and review queues remain awaiting-only; account-change request behavior is unchanged.

Legacy contract inspected in webui/forms/users.forms.php (approval_requests_details) and plugins/requests/api/models/user_request.rb. Resolution retains API side effects: approval provisions an account, denial/correction sends notifications; this is not account lifecycle rollback. Existing confirmation/reason/approval options remain.

Validation: typecheck, lint, production build, 21 focused unit tests, 16 desktop/mobile fixture browser checks and the desktop stale-bulk regression passed. The original broader run was 17 passed / 1 failed because an existing desktop-only bulk checkbox test was also selected on mobile; the correctly scoped desktop regression passed. Four additional cs/en desktop/mobile checks against the currently deployed public bundle confirmed the IP/email/Tor/VPN blocks remain below applicant details, with no checks in the sidebar. No real applicant was modified.

Česky

Ignorovaná, zamítnutá, schválená přihláška ani přihláška čekající na doplnění dříve nenabízela žádné akce. Administrátor nyní může změnit rozhodnutí přes existující Resolve API; akce vedoucí do stejného stavu se nenabízí.

Před odesláním se znovu ověřuje stav načtený při otevření rozhodnutí. Souběžná změna, chybějící vlastník nebo chyba načtení zabrání odeslání. Hromadné zpracování a fronta zůstávají omezené na čekající žádosti. Chování žádostí o změnu účtu se nemění. Zachovány jsou potvrzovací dialogy, důvody i parametry schválení. Změna rozhodnutí zachovává účinky API a nevrací životní cyklus již vytvořeného účtu.

Prošel typecheck, lint, build, 21 unit testů, 16 desktop/mobile prohlížečových testů se syntetickými daty a desktopová regrese hromadného zpracování. Původní širší běh měl 17 úspěchů a 1 chybu při nesprávném spuštění starého desktopového checkbox testu na mobilu; správně vybraná desktopová kontrola prošla. Další 4 kontroly na nasazeném veřejném buildu potvrdily, že IP/e-mail/Tor/VPN jsou pod detailem přihlášky. Skutečné přihlášky nebyly měněny.

Match the legacy request Resolve contract: offer decisions from known
registration states except a transition to the current state. Recheck the
state captured when the decision opened before posting. Keep bulk review
and queue traversal awaiting-only, with owner and role guards intact.
@Kerrycek
Kerrycek merged commit 65dbdfc into main Sep 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant