Archived
35 lines
1.1 KiB
Python
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) |