types.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from django.contrib.auth import get_user_model
  2. from django.contrib.auth.models import Group
  3. from graphene_django import DjangoObjectType
  4. from users import filtersets
  5. from utilities.querysets import RestrictedQuerySet
  6. __all__ = (
  7. 'GroupType',
  8. 'UserType',
  9. )
  10. class GroupType(DjangoObjectType):
  11. class Meta:
  12. model = Group
  13. fields = ('id', 'name')
  14. filterset_class = filtersets.GroupFilterSet
  15. @classmethod
  16. def get_queryset(cls, queryset, info):
  17. return RestrictedQuerySet(model=Group).restrict(info.context.user, 'view')
  18. class UserType(DjangoObjectType):
  19. class Meta:
  20. model = get_user_model()
  21. fields = (
  22. 'id', 'username', 'password', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined',
  23. 'groups',
  24. )
  25. filterset_class = filtersets.UserFilterSet
  26. @classmethod
  27. def get_queryset(cls, queryset, info):
  28. return RestrictedQuerySet(model=get_user_model()).restrict(info.context.user, 'view')