From 04dc68284fee5d9e809d809406682fd19cab18b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sun, 11 Sep 2016 22:35:00 +0200 Subject: [PATCH] add public and access to package serialization --- src/c3nav/api/serializers.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/c3nav/api/serializers.py b/src/c3nav/api/serializers.py index 26031f2f..0104accb 100644 --- a/src/c3nav/api/serializers.py +++ b/src/c3nav/api/serializers.py @@ -1,6 +1,9 @@ +from django.conf import settings + from rest_framework.serializers import ModelSerializer from ..mapdata.models import Level, Package, Source +from .permissions import can_access_package class BoundsMixin: @@ -22,6 +25,13 @@ class PackageSerializer(BoundsMixin, ModelSerializer): model = Package fields = ('name', 'depends') + def to_representation(self, obj): + result = super().to_representation(obj) + result['public'] = obj.name in settings.PUBLIC_PACKAGES + if 'request' in self.context: + result['access'] = can_access_package(self.context['request'], obj) + return result + class SourceSerializer(BoundsMixin, ModelSerializer): class Meta: