✨(backend) add 'username' query param when retrieving a room
Quick and dirty approach. It works, that's essential. Frontend can pass a desired username for the user. This would be the name displayed in the room to other participants. Usernames don't need to be unique, but user identities do If no username is passed, API will fall back to a default username. Why? This serves as a security mechanism. If the API is called incorrectly by a client, it maintains the previous behavior.
This commit is contained in:
committed by
aleb_the_flash
parent
faff1c1228
commit
ae95a00301
@@ -122,10 +122,14 @@ class RoomSerializer(serializers.ModelSerializer):
|
||||
if role is not None or instance.is_public:
|
||||
slug = f"{instance.id!s}".replace("-", "")
|
||||
|
||||
username = request.GET.get("username", None)
|
||||
|
||||
output["livekit"] = {
|
||||
"url": settings.LIVEKIT_CONFIGURATION["url"],
|
||||
"room": slug,
|
||||
"token": utils.generate_token(room=slug, user=request.user),
|
||||
"token": utils.generate_token(
|
||||
room=slug, user=request.user, username=username
|
||||
),
|
||||
}
|
||||
|
||||
output["is_administrable"] = is_admin
|
||||
|
||||
@@ -188,12 +188,15 @@ class RoomViewSet(
|
||||
if not settings.ALLOW_UNREGISTERED_ROOMS:
|
||||
raise
|
||||
slug = slugify(self.kwargs["pk"])
|
||||
username = request.query_params.get("username", None)
|
||||
data = {
|
||||
"id": None,
|
||||
"livekit": {
|
||||
"url": settings.LIVEKIT_CONFIGURATION["url"],
|
||||
"room": slug,
|
||||
"token": utils.generate_token(room=slug, user=request.user),
|
||||
"token": utils.generate_token(
|
||||
room=slug, user=request.user, username=username
|
||||
),
|
||||
},
|
||||
}
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user