Commit graph

15 commits

Author SHA1 Message Date
ea17d7da0d admin: bypass the reserved-username blocklist at write time too
UpdateUsernameAdmin already skipped the reserved-word check in the
availability lookup, but UserStore.UpdateUsername's own write path
(replacePeerUsernameTx / CollectibleUsernameStore.SetEditableUsername)
enforces the same operator blocklist a second time, independently and
unconditionally. That second check is what was still rejecting an admin
handing out a word they'd deliberately reserved, with "username occupied".

Add UpdateUsernameAdmin/SetEditableUsernameAdmin bypass variants down the
write path (postgres and memory) and route users.Service's actual write
through them when the availability check was already bypassed.
2026-09-15 16:22:00 +01:00
d83034e8dc admin: allow assigning a reserved username to a user via the admin console
Add users.Service.UpdateUsernameAdmin, which skips the
config.ReservedUsernames block that self-service UpdateUsername enforces.
Operators need to be able to hand a reserved word to a specific account
even though regular users can't claim it themselves.
2026-09-15 12:04:26 +01:00
4ca35d2000 users: never cache a deleted user's base row
redisstore.userBaseValue has no Deleted/DeletedAt/Status field, so caching a
deleted user silently reset Deleted back to false (and Status to the zero
UserStatusUnknown) on every round trip. That never self-healed: each later
cache miss reloaded the correctly tombstoned DB row and immediately
re-corrupted it on write, so once anyone looked a deleted account up, it kept
showing a blank name with "last seen recently" instead of "Deleted Account".

Keep deleted users off the base cache entirely so lookups always hit the
authoritative store, and stop presence overlay from touching a Deleted user's
Status at all as defense in depth.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 12:06:46 +01:00
onysd
21a0856587 merged from gramsrv upstream 2026-09-01 12:06:31 +03:00
onysd
79c64ee916 fix 2026-08-27 13:23:17 +03:00
onysd
818c9a58a3 disabling marksbot when third-party verifications if turned off 2026-08-06 15:45:32 +03:00
onysd
ac6a50c5ff Merge remote-tracking branch 'upstream/main' into merge-gramsrv-9106877 2026-08-03 23:29:20 +03:00
iamxvbaba
5156b17c1b fix(usernames): sync index active collectible aliases 2026-07-28 16:22:34 +08:00
iamxvbaba
70e57b4d07 fix: sync non-PTS moderation updates 2026-07-24 11:57:00 +08:00
iamxvbaba
6cafa40c7b fix: sync moderation refresh cache bypass 2026-07-24 11:57:00 +08:00
iamxvbaba
e1a95c7318 fix: sync contact phone privacy disclosure 2026-07-24 11:56:58 +08:00
onysd
89496b3558 fix 2026-07-20 12:43:53 +03:00
A
70b6820474 chore: refresh gramsrv public release 2026-06-30 14:37:43 +08:00
A
860e581d06 business: fix contact projection and phone sharing
(cherry picked from commit c0a0e5b52240ed415d3b43ba77659821887bf50b)
2026-06-10 22:06:56 +08:00
A
74992e893f Initial open source release 2026-06-04 01:37:39 +08:00