add public and access to package serialization

This commit is contained in:
Laura Klünder 2016-09-11 22:35:00 +02:00
parent 6c6867346f
commit 04dc68284f

View file

@ -1,6 +1,9 @@
from django.conf import settings
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from ..mapdata.models import Level, Package, Source from ..mapdata.models import Level, Package, Source
from .permissions import can_access_package
class BoundsMixin: class BoundsMixin:
@ -22,6 +25,13 @@ class PackageSerializer(BoundsMixin, ModelSerializer):
model = Package model = Package
fields = ('name', 'depends') 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 SourceSerializer(BoundsMixin, ModelSerializer):
class Meta: class Meta: