Allow administrators to reconsider resolved registrations - #510
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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) andplugins/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.