comms: set guest displayname at registration

This commit is contained in:
Brad Stein 2026-01-07 11:23:53 -03:00
parent c950c32e93
commit 695e1ec322
3 changed files with 22 additions and 2 deletions

View File

@ -6,7 +6,7 @@ metadata:
namespace: comms
spec:
schedule: "*/1 * * * *"
suspend: false
suspend: true
jobTemplate:
spec:
backoffLimit: 0

View File

@ -6,11 +6,13 @@ metadata:
data:
guest_register.py: |
import secrets
import random
import synapse.api.auth
from synapse.api.errors import Codes, SynapseError
from synapse.http.server import DirectServeJsonResource
from synapse.http.servlet import parse_json_object_from_request
from synapse.types import UserID, create_requester
class GuestRegisterResource(DirectServeJsonResource):
@ -20,6 +22,9 @@ data:
self._shared_secret = shared_secret
self._header_name = header_name
self._adj = ["brisk", "calm", "eager", "gentle", "merry", "nifty", "rapid", "sunny", "witty", "zesty"]
self._noun = ["otter", "falcon", "comet", "ember", "grove", "harbor", "meadow", "raven", "river", "summit"]
async def _async_render_POST(self, request): # noqa: N802
provided = request.requestHeaders.getRawHeaders(self._header_name)
if not provided or not secrets.compare_digest(provided[0], self._shared_secret):
@ -43,6 +48,21 @@ data:
is_guest=True,
)
displayname = body.get("displayname")
if not isinstance(displayname, str) or not displayname.strip():
displayname = f"{random.choice(self._adj)}-{random.choice(self._noun)}"
try:
requester = create_requester(user_id, is_guest=True, device_id=device_id)
await self._hs.get_profile_handler().set_displayname(
UserID.from_string(user_id),
requester,
displayname,
propagate=False,
)
except Exception:
pass
result = {
"user_id": user_id,
"device_id": device_id,

View File

@ -684,7 +684,7 @@ spec:
template:
metadata:
annotations:
checksum/config: manual-rtc-enable-7
checksum/config: manual-rtc-enable-8
checksum/secrets: ec9f3b254a562a0f0709461eb74a8cc91b8c1a2fb06be2594a131776c2541773
labels:
app.kubernetes.io/name: matrix-synapse