| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- from django.contrib.auth.models import Group, User
- from django.contrib.contenttypes.models import ContentType
- from rest_framework import serializers
- from users.models import ObjectPermission
- from utilities.api import ContentTypeField, SerializedPKRelatedField, ValidatedModelSerializer
- from .nested_serializers import *
- class UserSerializer(ValidatedModelSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='users-api:user-detail')
- groups = SerializedPKRelatedField(
- queryset=Group.objects.all(),
- serializer=NestedGroupSerializer,
- required=False,
- many=True
- )
- class Meta:
- model = User
- fields = (
- 'id', 'url', 'username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined',
- 'groups',
- )
- class GroupSerializer(ValidatedModelSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='users-api:group-detail')
- user_count = serializers.IntegerField(read_only=True)
- class Meta:
- model = Group
- fields = ('id', 'url', 'name', 'user_count')
- 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=NestedGroupSerializer,
- required=False,
- many=True
- )
- users = SerializedPKRelatedField(
- queryset=User.objects.all(),
- serializer=NestedUserSerializer,
- required=False,
- many=True
- )
- class Meta:
- model = ObjectPermission
- fields = (
- 'id', 'url', 'name', 'description', 'enabled', 'object_types', 'groups', 'users', 'actions', 'constraints',
- )
|