paperless-ngx/src/paperless/serialisers.py

51 lines
1.2 KiB
Python
Raw Normal View History

2022-11-12 18:46:52 +00:00
from django.contrib.auth.models import Group
2022-11-13 22:58:07 -08:00
from django.contrib.auth.models import Permission
2022-11-12 18:46:52 +00:00
from django.contrib.auth.models import User
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
2022-11-13 22:58:07 -08:00
user_permissions = serializers.SlugRelatedField(
many=True,
queryset=Permission.objects.all(),
slug_field="codename",
)
2022-11-12 18:46:52 +00:00
inherited_permissions = serializers.SerializerMethodField()
class Meta:
model = User
fields = (
"id",
"username",
"first_name",
"last_name",
"date_joined",
"is_staff",
"is_active",
2022-11-12 18:46:52 +00:00
"is_superuser",
"groups",
2022-11-13 22:58:07 -08:00
"user_permissions",
2022-11-12 18:46:52 +00:00
"inherited_permissions",
)
def get_inherited_permissions(self, obj):
return obj.get_group_permissions()
2022-11-12 18:46:52 +00:00
class GroupSerializer(serializers.ModelSerializer):
2022-11-13 22:58:07 -08:00
permissions = serializers.SlugRelatedField(
many=True,
queryset=Permission.objects.all(),
slug_field="codename",
)
2022-11-12 18:46:52 +00:00
class Meta:
model = Group
fields = (
"id",
"name",
"permissions",
)