comms: set guest displayname at registration
This commit is contained in:
parent
c950c32e93
commit
695e1ec322
@ -6,7 +6,7 @@ metadata:
|
|||||||
namespace: comms
|
namespace: comms
|
||||||
spec:
|
spec:
|
||||||
schedule: "*/1 * * * *"
|
schedule: "*/1 * * * *"
|
||||||
suspend: false
|
suspend: true
|
||||||
jobTemplate:
|
jobTemplate:
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0
|
backoffLimit: 0
|
||||||
|
|||||||
@ -6,11 +6,13 @@ metadata:
|
|||||||
data:
|
data:
|
||||||
guest_register.py: |
|
guest_register.py: |
|
||||||
import secrets
|
import secrets
|
||||||
|
import random
|
||||||
|
|
||||||
import synapse.api.auth
|
import synapse.api.auth
|
||||||
from synapse.api.errors import Codes, SynapseError
|
from synapse.api.errors import Codes, SynapseError
|
||||||
from synapse.http.server import DirectServeJsonResource
|
from synapse.http.server import DirectServeJsonResource
|
||||||
from synapse.http.servlet import parse_json_object_from_request
|
from synapse.http.servlet import parse_json_object_from_request
|
||||||
|
from synapse.types import UserID, create_requester
|
||||||
|
|
||||||
|
|
||||||
class GuestRegisterResource(DirectServeJsonResource):
|
class GuestRegisterResource(DirectServeJsonResource):
|
||||||
@ -20,6 +22,9 @@ data:
|
|||||||
self._shared_secret = shared_secret
|
self._shared_secret = shared_secret
|
||||||
self._header_name = header_name
|
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
|
async def _async_render_POST(self, request): # noqa: N802
|
||||||
provided = request.requestHeaders.getRawHeaders(self._header_name)
|
provided = request.requestHeaders.getRawHeaders(self._header_name)
|
||||||
if not provided or not secrets.compare_digest(provided[0], self._shared_secret):
|
if not provided or not secrets.compare_digest(provided[0], self._shared_secret):
|
||||||
@ -43,6 +48,21 @@ data:
|
|||||||
is_guest=True,
|
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 = {
|
result = {
|
||||||
"user_id": user_id,
|
"user_id": user_id,
|
||||||
"device_id": device_id,
|
"device_id": device_id,
|
||||||
|
|||||||
@ -684,7 +684,7 @@ spec:
|
|||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
checksum/config: manual-rtc-enable-7
|
checksum/config: manual-rtc-enable-8
|
||||||
checksum/secrets: ec9f3b254a562a0f0709461eb74a8cc91b8c1a2fb06be2594a131776c2541773
|
checksum/secrets: ec9f3b254a562a0f0709461eb74a8cc91b8c1a2fb06be2594a131776c2541773
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: matrix-synapse
|
app.kubernetes.io/name: matrix-synapse
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user