add public and access to package serialization
This commit is contained in:
parent
6c6867346f
commit
04dc68284f
1 changed files with 10 additions and 0 deletions
|
@ -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:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue