Move to using inline todos, update .dockerignore, and remove duplicate timezone records in seed data

This commit is contained in:
Keannu Christian Bernasol 2024-11-13 17:43:36 +08:00
parent b024a74364
commit f7b949a45e
7 changed files with 40 additions and 29 deletions

View file

@ -3,12 +3,14 @@ from notifications.models import Notification
from notifications.serializers import NotificationSerializer
from rest_framework import viewsets
from rest_framework.exceptions import PermissionDenied
from rest_framework.permissions import IsAuthenticated
class NotificationViewSet(viewsets.ModelViewSet):
http_method_names = ["get", "patch", "delete"]
http_method_names = ["get", "delete"]
serializer_class = NotificationSerializer
queryset = Notification.objects.all()
permission_classes = [IsAuthenticated]
def get_queryset(self):
user = self.request.user
@ -21,18 +23,14 @@ class NotificationViewSet(viewsets.ModelViewSet):
cache.set(key, queryset, 60 * 60)
return queryset
def update(self, request, *args, **kwargs):
instance = self.get_object()
if instance.recipient != request.user:
raise PermissionDenied(
"You do not have permission to update this notification."
)
return super().update(request, *args, **kwargs)
def destroy(self, request, *args, **kwargs):
instance = self.get_object()
user = self.request.user
if instance.recipient != request.user:
raise PermissionDenied(
"You do not have permission to delete this notification."
)
cache.delete(f"notifications_user:{user.id}")
return super().destroy(request, *args, **kwargs)