Add admin user information REST API

This commit is contained in:
Jan Dittberner 2023-04-16 13:21:57 +02:00
parent 9731d4e793
commit a65b1574db
5 changed files with 81 additions and 2 deletions

View file

@ -0,0 +1,30 @@
"""
Serializers for the REST API
"""
from django.contrib.auth import get_user_model
from rest_framework import serializers
from help.models import HelpUser
User = get_user_model()
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ["url", "username", "helpuser"]
read_only_fields = ["username", "helpuser"]
class HelpUserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = HelpUser
fields = [
"url",
"user",
"email_address",
"postal_address",
"offline_account_code",
]
read_only_fields = ["user", "offline_account_code"]

View file

@ -1,3 +1,29 @@
from django.shortcuts import render
from django.contrib.auth import get_user_model
from rest_framework import permissions, viewsets
# Create your views here.
from help.models import HelpUser
from help.serializers import HelpUserSerializer, UserSerializer
User = get_user_model()
class UserViewSet(viewsets.ReadOnlyModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by("-username")
serializer_class = UserSerializer
permission_classes = [permissions.IsAdminUser]
class HelpUserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows user help profile to be viewed or edited.
"""
queryset = HelpUser.objects.all().order_by("-user__username")
serializer_class = HelpUserSerializer
permission_classes = [permissions.IsAdminUser]