Complete registration through verified rating-profile control #27

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

Outcome

Require control of a rating.chgk.info player profile before granting Quorum access. Verify the Telegram username recorded on that profile during registration.

Implement the external lookup through a core-defined verification port. Verify current provider access and response behavior during implementation. Cached display metadata cannot establish account control.

Acceptance criteria

  • Instructions direct users to https://rating.chgk.info/user_page. They enter their Telegram username without @ in the Telegram field and temporarily set privacy to Отсутствует.
  • Users enter a numeric player ID. Quorum checks immediately, offers Check again, and performs bounded background retries. The retry policy is explicit and respects verified provider limits.
  • A successful current lookup verifies the expected Telegram association. An unavailable service, inaccessible field, mismatch, or malformed response cannot count as verification.
  • Instructions explain that privacy can be restored after verification. Quorum never requests a rating password.
  • Users can correct an unverified player ID. Attempts against an obsolete ID cannot complete a newer registration attempt.
  • At most one active Quorum account can hold a rating player ID. Concurrent verification cannot create duplicate full accounts or transfer an occupied link.
  • Registration completes only after Telegram authentication, successful rating verification, and the required preferred-name fields. Until then, all protected pages and APIs remain inaccessible.
  • A verified rating link cannot be replaced with another profile through self-service or moderator controls. Recovery retains the same rating profile.
  • Later ordinary Telegram logins use saved verification. An external outage does not invalidate an already completed link.
  • Rating names may prefill editable nominative fields. Verification does not force the external spelling on preferred names.
  • A completed verification exposes the stable rating identifier for attribution reconciliation. It grants no author-based editing or organizer permissions.

Validation design

Use explicit successful, mismatched, private, missing, and unavailable lookup responses. Test changing the pending player ID while a check runs. Race two accounts verifying one rating profile with independent PostgreSQL connections. Verify that failed and partial registration cannot fetch protected data. Test return login during an external outage independently of initial verification.

Check that the instructions identify the exact account page, field, and privacy value. A user without a Telegram username receives instructions to create one first.

Dependencies

## Outcome Require control of a rating.chgk.info player profile before granting Quorum access. Verify the Telegram username recorded on that profile during registration. Implement the external lookup through a core-defined verification port. Verify current provider access and response behavior during implementation. Cached display metadata cannot establish account control. ## Acceptance criteria - Instructions direct users to `https://rating.chgk.info/user_page`. They enter their Telegram username without `@` in the Telegram field and temporarily set privacy to `Отсутствует`. - Users enter a numeric player ID. Quorum checks immediately, offers Check again, and performs bounded background retries. The retry policy is explicit and respects verified provider limits. - A successful current lookup verifies the expected Telegram association. An unavailable service, inaccessible field, mismatch, or malformed response cannot count as verification. - Instructions explain that privacy can be restored after verification. Quorum never requests a rating password. - Users can correct an unverified player ID. Attempts against an obsolete ID cannot complete a newer registration attempt. - At most one active Quorum account can hold a rating player ID. Concurrent verification cannot create duplicate full accounts or transfer an occupied link. - Registration completes only after Telegram authentication, successful rating verification, and the required preferred-name fields. Until then, all protected pages and APIs remain inaccessible. - A verified rating link cannot be replaced with another profile through self-service or moderator controls. Recovery retains the same rating profile. - Later ordinary Telegram logins use saved verification. An external outage does not invalidate an already completed link. - Rating names may prefill editable nominative fields. Verification does not force the external spelling on preferred names. - A completed verification exposes the stable rating identifier for attribution reconciliation. It grants no author-based editing or organizer permissions. ## Validation design Use explicit successful, mismatched, private, missing, and unavailable lookup responses. Test changing the pending player ID while a check runs. Race two accounts verifying one rating profile with independent PostgreSQL connections. Verify that failed and partial registration cannot fetch protected data. Test return login during an external outage independently of initial verification. Check that the instructions identify the exact account page, field, and privacy value. A user without a Telegram username receives instructions to create one first. ## Dependencies - [#14: Authenticate Telegram users through protected Quorum sessions](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/14). Provides verified Telegram login and the access gate. - [#18: Collect editable name forms with stress marks](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/18). Supplies required name fields before registration completes. - [#16: Run durable PostgreSQL jobs with atomic effects](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/16). Supplies bounded background verification that survives restarts. ## Related work - [#49: Restore account access through moderator-approved Telegram relinking](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/49) - [#37: Attribute groups to registered and unregistered authors](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/37) - [#40: Cache external display metadata with explicit freshness](https://code.viacheslavshuka.com/viacheslavshuka/quorum/issues/40)
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#27
No description provided.