update tests to reflect pagination and API changes

This commit is contained in:
smilerz
2024-04-23 09:18:48 -05:00
parent fd0d5813fb
commit 2847721584
18 changed files with 357 additions and 406 deletions

View File

@@ -172,18 +172,20 @@ class SpaceFilterSerializer(serializers.ListSerializer):
if self.context.get('request', None) is None:
return
# Don't return User details to anonymous users
if self.child.Meta.model == User and isinstance(self.context['request'].user, AnonymousUser):
data = []
# paginated data is provided as a list, otherwise as a Queryset
if isinstance(data, QuerySet):
if (isinstance(data, QuerySet) and data.query.is_sliced):
# if query is sliced it came from api request not nested serializer
if data.query.is_sliced:
return super().to_representation(data)
data = data.filter(userspace__space=self.context['request'].user.get_active_space()).all()
return super().to_representation(data)
if self.child.Meta.model == User:
# Don't return User details to anonymous users
if isinstance(self.context['request'].user, AnonymousUser):
data = []
else:
data = data.filter(userspace__space=self.context['request'].user.get_active_space()).all()
elif isinstance(data, list):
data = [d for d in data if getattr(d, self.child.Meta.model.get_space_key()[0]) == self.context['request'].space]
else:
data = data.filter(**{'__'.join(self.child.Meta.model.get_space_key()): self.context['request'].space})
return super().to_representation(data)