automated admin check
This commit is contained in:
parent
bd017482db
commit
a5d1a9569c
@ -12,6 +12,7 @@ from rest_framework.authentication import SessionAuthentication, TokenAuthentica
|
||||
from rest_framework.parsers import MultiPartParser, FormParser
|
||||
|
||||
from apps.home.models import SubChannel, Filter, Subscription, SavedGuilds
|
||||
from apps.authentication.models import DiscordUser
|
||||
from .serializers import (
|
||||
SubChannelSerializer,
|
||||
FilterSerializer,
|
||||
@ -30,6 +31,12 @@ class DefaultPagination(PageNumberPagination):
|
||||
max_page_size = 25
|
||||
|
||||
|
||||
def is_automated_admin(user):
|
||||
print("is automated admin", user.user_type == DiscordUser.USER_TYPES.AUTOMATED_USER and user.is_superuser)
|
||||
print(user.user_type == DiscordUser.USER_TYPES.AUTOMATED_USER)
|
||||
print(user.is_superuser)
|
||||
return user.user_type == DiscordUser.USER_TYPES.AUTOMATED_USER and user.is_superuser
|
||||
|
||||
|
||||
# =================================================================================================
|
||||
# SubChannel Views
|
||||
@ -106,6 +113,9 @@ class Filter_ListView(generics.ListCreateAPIView):
|
||||
search_fields = ["name", "keywords", "regex"]
|
||||
|
||||
def get_queryset(self):
|
||||
if is_automated_admin(self.request.user):
|
||||
return Filter.objects.all().order_by("id")
|
||||
|
||||
saved_guild_ids = SavedGuilds.objects \
|
||||
.filter(added_by=self.request.user.id) \
|
||||
.values("guild_id")
|
||||
@ -145,6 +155,9 @@ class Filter_DetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||
serializer_class = FilterSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
if is_automated_admin(self.request.user):
|
||||
return Filter.objects.all().order_by("id")
|
||||
|
||||
saved_guild_ids = SavedGuilds.objects \
|
||||
.filter(added_by=self.request.user.id) \
|
||||
.values("guild_id")
|
||||
@ -178,6 +191,9 @@ class Subscription_ListView(generics.ListCreateAPIView):
|
||||
ordering_fields = ["creation_datetime", "guild_id"]
|
||||
|
||||
def get_queryset(self):
|
||||
if is_automated_admin(self.request.user):
|
||||
return Subscription.objects.all().order_by("-creation_datetime")
|
||||
|
||||
saved_guild_ids = SavedGuilds.objects \
|
||||
.filter(added_by=self.request.user.id) \
|
||||
.values("guild_id")
|
||||
@ -218,6 +234,9 @@ class Subscription_DetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||
# queryset = Subscription.objects.all().order_by("-creation_datetime")
|
||||
|
||||
def get_queryset(self):
|
||||
if is_automated_admin(self.request.user):
|
||||
return Subscription.objects.all().order_by("-creation_datetime")
|
||||
|
||||
saved_guild_ids = SavedGuilds.objects \
|
||||
.filter(added_by=self.request.user.id) \
|
||||
.values("guild_id")
|
||||
@ -238,20 +257,21 @@ class Subscription_SubChannelView(generics.DestroyAPIView):
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
|
||||
print(kwargs)
|
||||
if is_automated_admin(self.request.user):
|
||||
subscriptions = Subscription.objects.all()
|
||||
else:
|
||||
saved_guild_ids = SavedGuilds.objects \
|
||||
.filter(added_by=self.request.user.id) \
|
||||
.values("guild_id")
|
||||
|
||||
saved_guild_ids = SavedGuilds.objects \
|
||||
.filter(added_by=self.request.user.id) \
|
||||
.values("guild_id")
|
||||
subscriptions = Subscription.objects \
|
||||
.filter(guild_id__in=Subquery(saved_guild_ids))
|
||||
|
||||
subscriptions = Subscription.objects \
|
||||
.filter(guild_id__in=Subquery(saved_guild_ids))
|
||||
|
||||
if not subscriptions:
|
||||
return Response(
|
||||
{"detail": "You are forbidden from viewing this subscription"},
|
||||
status=status.HTTP_403_FORBIDDEN
|
||||
)
|
||||
if not subscriptions:
|
||||
return Response(
|
||||
{"detail": "You are forbidden from viewing this subscription"},
|
||||
status=status.HTTP_403_FORBIDDEN
|
||||
)
|
||||
|
||||
subscription = subscriptions.filter(id=kwargs["pk"]).first()
|
||||
|
||||
@ -288,6 +308,9 @@ class SavedGuild_ListView(generics.ListCreateAPIView):
|
||||
search_fields = ["name"]
|
||||
|
||||
def get_queryset(self):
|
||||
if is_automated_admin(self.request.user):
|
||||
return SavedGuilds.objects.all()
|
||||
|
||||
return SavedGuilds.objects.filter(added_by=self.request.user)
|
||||
|
||||
def post(self, request):
|
||||
@ -341,4 +364,7 @@ class SavedGuild_DetailView(generics.RetrieveDestroyAPIView):
|
||||
serializer_class = SavedGuildSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
if is_automated_admin(self.request.user):
|
||||
return SavedGuilds.objects.all()
|
||||
|
||||
return SavedGuilds.objects.filter(added_by=self.request.user)
|
||||
|
Loading…
x
Reference in New Issue
Block a user