2020-07-22 11:21:51 -04:00
|
|
|
from django.contrib.auth.models import Group, User
|
|
|
|
from django.db.models import Count
|
|
|
|
|
|
|
|
from users import filters
|
|
|
|
from users.models import ObjectPermission
|
2020-06-03 13:08:04 -04:00
|
|
|
from utilities.api import ModelViewSet
|
2020-07-22 11:21:51 -04:00
|
|
|
from utilities.querysets import RestrictedQuerySet
|
2020-06-03 13:08:04 -04:00
|
|
|
from . import serializers
|
|
|
|
|
2020-07-22 11:21:51 -04:00
|
|
|
|
|
|
|
#
|
|
|
|
# Users and groups
|
|
|
|
#
|
|
|
|
|
|
|
|
class UserViewSet(ModelViewSet):
|
|
|
|
queryset = RestrictedQuerySet(model=User).prefetch_related('groups')
|
|
|
|
serializer_class = serializers.UserSerializer
|
|
|
|
filterset_class = filters.UserFitlerSet
|
|
|
|
|
|
|
|
|
|
|
|
class GroupViewSet(ModelViewSet):
|
|
|
|
queryset = RestrictedQuerySet(model=Group).annotate(user_count=Count('user'))
|
|
|
|
serializer_class = serializers.GroupSerializer
|
|
|
|
filterset_class = filters.GroupFitlerSet
|
2020-06-03 13:08:04 -04:00
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# ObjectPermissions
|
|
|
|
#
|
|
|
|
|
|
|
|
class ObjectPermissionViewSet(ModelViewSet):
|
|
|
|
queryset = ObjectPermission.objects.prefetch_related('object_types', 'groups', 'users')
|
|
|
|
serializer_class = serializers.ObjectPermissionSerializer
|
|
|
|
# filterset_class = filters.ObjectPermissionFilterSet
|