Restore account access through moderator-approved Telegram relinking #49

Open
opened 2026-11-01 20:12:08 +00:00 by viacheslavshuka · 0 comments

Outcome

A person who loses their Telegram account needs access to their existing Quorum account. Recovery verifies a new Telegram login and control of the same rating profile before a moderator approves relinking.

Provide a configured Contact a moderator Telegram link on the public login page. This workflow does not create an internal support-ticket or messaging system.

Acceptance criteria

  • Recovery can begin without access to the old Telegram account. The new Telegram login and current control of the already linked rating profile are both required.
  • Verification progress grants no ordinary application access. Successful proof alone does not transfer the account before moderator approval.
  • Only an authorized moderator can approve the recovery. The operation rechecks the proof, target account, and new identity before changing the link.
  • Approval preserves the same account, rating profile, history, registrations, roles, and restrictions.
  • Approval revokes old Quorum browser sessions and prevents further authentication through the previous Telegram identity.
  • Recovery cannot replace the rating profile with another profile, transfer an occupied link automatically, or create a second full account for the same person.
  • A rejected, stale, or conflicting recovery leaves the existing account and sessions unchanged. Repeating an approved operation cannot create another account or duplicate roles.
  • The public contact comes from deployment configuration. The page does not invent a moderator username or expose private moderation details.

Validation design

Test missing new-login proof, a different rating ID, mismatched external proof, unauthorized approval, and competing relinks. A PostgreSQL transaction test must detect partial identity transfer with unrecovered old sessions. After approval, assert preserved history and restrictions, rejected old credentials, and access through the new identity.

Dependencies

## Outcome A person who loses their Telegram account needs access to their existing Quorum account. Recovery verifies a new Telegram login and control of the same rating profile before a moderator approves relinking. Provide a configured Contact a moderator Telegram link on the public login page. This workflow does not create an internal support-ticket or messaging system. ## Acceptance criteria - Recovery can begin without access to the old Telegram account. The new Telegram login and current control of the already linked rating profile are both required. - Verification progress grants no ordinary application access. Successful proof alone does not transfer the account before moderator approval. - Only an authorized moderator can approve the recovery. The operation rechecks the proof, target account, and new identity before changing the link. - Approval preserves the same account, rating profile, history, registrations, roles, and restrictions. - Approval revokes old Quorum browser sessions and prevents further authentication through the previous Telegram identity. - Recovery cannot replace the rating profile with another profile, transfer an occupied link automatically, or create a second full account for the same person. - A rejected, stale, or conflicting recovery leaves the existing account and sessions unchanged. Repeating an approved operation cannot create another account or duplicate roles. - The public contact comes from deployment configuration. The page does not invent a moderator username or expose private moderation details. ## Validation design Test missing new-login proof, a different rating ID, mismatched external proof, unauthorized approval, and competing relinks. A PostgreSQL transaction test must detect partial identity transfer with unrecovered old sessions. After approval, assert preserved history and restrictions, rejected old credentials, and access through the new identity. ## Dependencies - [#14: Authenticate Telegram users through protected Quorum sessions](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/14). Supplies new Telegram login and old-session revocation. - [#27: Complete registration through verified rating-profile control](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/27). Supplies current proof of rating-profile control. - [#48: Give operator-appointed moderators a private report queue](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/48). Supplies moderator authorization for approval. ## Related work - [#19: Let users inspect and revoke browser sessions](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/19)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
viacheslavshuka/quorum#49
No description provided.