| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from django.contrib.auth import get_user_model
- from django.contrib.contenttypes.models import ContentType
- from rest_framework import serializers
- from netbox.api.fields import ContentTypeField, SerializedPKRelatedField
- from netbox.api.serializers import ValidatedModelSerializer
- from users.models import Group, ObjectPermission
- from .users import GroupSerializer, UserSerializer
- __all__ = (
- 'ObjectPermissionSerializer',
- )
- class ObjectPermissionSerializer(ValidatedModelSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='users-api:objectpermission-detail')
- object_types = ContentTypeField(
- queryset=ContentType.objects.all(),
- many=True
- )
- groups = SerializedPKRelatedField(
- queryset=Group.objects.all(),
- serializer=GroupSerializer,
- nested=True,
- required=False,
- many=True
- )
- users = SerializedPKRelatedField(
- queryset=get_user_model().objects.all(),
- serializer=UserSerializer,
- nested=True,
- required=False,
- many=True
- )
- class Meta:
- model = ObjectPermission
- fields = (
- 'id', 'url', 'display', 'name', 'description', 'enabled', 'object_types', 'groups', 'users', 'actions',
- 'constraints',
- )
- brief_fields = (
- 'id', 'url', 'display', 'name', 'description', 'enabled', 'object_types', 'groups', 'users', 'actions',
- )
|