This commit is contained in:
lebaudantoine
2025-10-02 18:28:35 +02:00
parent fe967bdb2d
commit ac720d7ad4
3 changed files with 5 additions and 50 deletions
-46
View File
@@ -301,49 +301,3 @@ class UpdateParticipantSerializer(BaseParticipantsManagementSerializer):
) from e
return attrs
class IntegrationJwtSerializer(BaseValidationOnlySerializer):
"""Validate room creation callback data."""
email = serializers.EmailField(required=True)
class IntegrationRoomSerializer(serializers.ModelSerializer):
"""Serialize Room model for the API."""
class Meta:
model = models.Room
fields = ["id", "name", "slug", "configuration", "access_level", "pin_code"]
read_only_fields = ["id", "slug", "pin_code"]
def to_representation(self, instance):
"""
Add users only for administrator users.
Add LiveKit credentials for public instance or related users/groups
"""
output = super().to_representation(instance)
request = self.context.get("request")
if not request:
return output
role = instance.get_role(request.user)
is_admin_or_owner = models.RoleChoices.check_administrator_role(
role
) or models.RoleChoices.check_owner_role(role)
if is_admin_or_owner:
access_serializer = NestedResourceAccessSerializer(
instance.accesses.select_related("resource", "user").all(),
context=self.context,
many=True,
)
output["accesses"] = access_serializer.data
if not is_admin_or_owner:
del output["configuration"]
output["is_administrable"] = is_admin_or_owner
return output
@@ -47,10 +47,14 @@ class IntegrationJWTAuthentication(authentication.BaseAuthentication):
token,
settings.INTEGRATIONS_JWT_SECRET_KEY,
algorithms=[settings.INTEGRATIONS_JWT_ALG],
issuer=settings.INTEGRATIONS_JWT_ISSUER,
)
except jwt.ExpiredSignatureError as e:
logger.error("Token expired")
raise exceptions.AuthenticationFailed("Token expired.") from e
except jwt.InvalidIssuerError as e:
logger.error("Invalid JWT issuer: %s", e)
raise exceptions.AuthenticationFailed("Invalid token.") from e
except jwt.InvalidTokenError as e:
logger.error("Invalid JWT token: %s", e)
raise exceptions.AuthenticationFailed("Invalid token.") from e
+1 -4
View File
@@ -25,10 +25,7 @@ class RoomSerializer(serializers.ModelSerializer):
read_only_fields = ["id", "name", "slug", "pin_code", "access_level"]
def to_representation(self, instance):
"""
Add users only for administrator users.
Add LiveKit credentials for public instance or related users/groups
"""
"""Wip."""
output = super().to_representation(instance)
request = self.context.get("request")