This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

35 lines
1.1 KiB
Python

from neuf_ldap.models import LdapGroup, LdapUser
from neuf_ldap.serializers import UserSerializer, GroupSerializer
from rest_framework import viewsets
class UserViewSet(viewsets.ReadOnlyModelViewSet):
"""
API endpoint that allows users to be viewed
"""
queryset = LdapUser.objects.all()
serializer_class = UserSerializer
def get_queryset(self):
if self.request.user.is_superuser:
return super(UserViewSet, self).get_queryset()
return LdapUser.objects.filter(username=self.request.user.username)
class GroupViewSet(viewsets.ReadOnlyModelViewSet):
"""
API endpoint that allows groups to be viewed
"""
queryset = LdapGroup.objects.all()
serializer_class = GroupSerializer
def get_queryset(self):
if self.request.user.is_superuser:
member = self.request.QUERY_PARAMS.get('member')
if member:
return LdapGroup.objects.filter(members__contains=member)
return super(GroupViewSet, self).get_queryset()
return LdapGroup.objects.filter(members__contains=self.request.user.username)