|
@@ -0,0 +1,27 @@
|
|
|
+from django.contrib.auth import get_user_model
|
|
|
+from django.contrib.auth.models import Group
|
|
|
+from rest_framework.response import Response
|
|
|
+from rest_framework.exceptions import NotFound
|
|
|
+from rest_framework import serializers
|
|
|
+from rest_framework.views import APIView
|
|
|
+from rest_framework.permissions import IsAuthenticated
|
|
|
+from rest_framework_api_key.permissions import HasAPIKey
|
|
|
+
|
|
|
+class UserSerializer(serializers.ModelSerializer):
|
|
|
+ class Meta:
|
|
|
+ model = get_user_model()
|
|
|
+ fields = ['id', 'username', 'email']
|
|
|
+
|
|
|
+class GroupUsersAPIView(APIView):
|
|
|
+ permission_classes = [IsAuthenticated | HasAPIKey]
|
|
|
+
|
|
|
+ def get(self, request, group_name):
|
|
|
+ try:
|
|
|
+ group = Group.objects.get(name=group_name)
|
|
|
+ except Group.DoesNotExist:
|
|
|
+ raise NotFound(f"Group '{group_name}' not found.")
|
|
|
+
|
|
|
+ users = group.user_set.all()
|
|
|
+ serializer = UserSerializer(users, many=True)
|
|
|
+ return Response(serializer.data)
|
|
|
+
|