Skip to content

Commit

Permalink
fix: remove caching for user based apis to handle avatar uploads (#6072)
Browse files Browse the repository at this point in the history
  • Loading branch information
pablohashescobar authored Nov 19, 2024
1 parent c1ac6e4 commit a3e8ee6
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 50 deletions.
17 changes: 0 additions & 17 deletions apiserver/plane/app/views/user/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
Session,
)
from plane.license.models import Instance, InstanceAdmin
from plane.utils.cache import cache_response, invalidate_cache
from plane.utils.paginator import BasePaginator
from plane.authentication.utils.host import user_ip
from plane.bgtasks.user_deactivation_email_task import user_deactivation_email
Expand All @@ -49,7 +48,6 @@ class UserEndpoint(BaseViewSet):
def get_object(self):
return self.request.user

@cache_response(60 * 60)
@method_decorator(cache_control(private=True, max_age=12))
@method_decorator(vary_on_cookie)
def retrieve(self, request):
Expand All @@ -59,14 +57,12 @@ def retrieve(self, request):
status=status.HTTP_200_OK,
)

@cache_response(60 * 60)
@method_decorator(cache_control(private=True, max_age=12))
@method_decorator(vary_on_cookie)
def retrieve_user_settings(self, request):
serialized_data = UserMeSettingsSerializer(request.user).data
return Response(serialized_data, status=status.HTTP_200_OK)

@cache_response(60 * 60)
def retrieve_instance_admin(self, request):
instance = Instance.objects.first()
is_admin = InstanceAdmin.objects.filter(
Expand All @@ -76,19 +72,9 @@ def retrieve_instance_admin(self, request):
{"is_instance_admin": is_admin}, status=status.HTTP_200_OK
)

@invalidate_cache(
path="/api/users/me/",
)
@invalidate_cache(
path="/api/users/me/settings/",
)
def partial_update(self, request, *args, **kwargs):
return super().partial_update(request, *args, **kwargs)

@invalidate_cache(path="/api/users/me/")
@invalidate_cache(
path="/api/users/me/workspaces/", multiple=True, user=False
)
def deactivate(self, request):
# Check all workspace user is active
user = self.get_object()
Expand Down Expand Up @@ -235,7 +221,6 @@ def get(self, request):

class UpdateUserOnBoardedEndpoint(BaseAPIView):

@invalidate_cache(path="/api/users/me/")
def patch(self, request):
profile = Profile.objects.get(user_id=request.user.id)
profile.is_onboarded = request.data.get("is_onboarded", False)
Expand All @@ -247,7 +232,6 @@ def patch(self, request):

class UpdateUserTourCompletedEndpoint(BaseAPIView):

@invalidate_cache(path="/api/users/me/")
def patch(self, request):
profile = Profile.objects.get(user_id=request.user.id)
profile.is_tour_completed = request.data.get(
Expand Down Expand Up @@ -305,7 +289,6 @@ def get(self, request):
serializer = ProfileSerializer(profile)
return Response(serializer.data, status=status.HTTP_200_OK)

@invalidate_cache("/api/users/me/settings/")
def patch(self, request):
profile = Profile.objects.get(user=request.user)
serializer = ProfileSerializer(
Expand Down
15 changes: 0 additions & 15 deletions apiserver/plane/app/views/workspace/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
WorkspaceTheme,
)
from plane.app.permissions import ROLE, allow_permission
from plane.utils.cache import cache_response, invalidate_cache
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_control
from django.views.decorators.vary import vary_on_cookie
Expand Down Expand Up @@ -99,9 +98,6 @@ def get_queryset(self):
.select_related("owner")
)

@invalidate_cache(path="/api/workspaces/", user=False)
@invalidate_cache(path="/api/users/me/workspaces/")
@invalidate_cache(path="/api/instances/", user=False)
def create(self, request):
try:
serializer = WorkSpaceSerializer(data=request.data)
Expand Down Expand Up @@ -147,7 +143,6 @@ def create(self, request):
status=status.HTTP_410_GONE,
)

@cache_response(60 * 60 * 2)
@allow_permission(
[
ROLE.ADMIN,
Expand All @@ -159,8 +154,6 @@ def create(self, request):
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)

@invalidate_cache(path="/api/workspaces/", user=False)
@invalidate_cache(path="/api/users/me/workspaces/")
@allow_permission(
[
ROLE.ADMIN,
Expand All @@ -170,13 +163,6 @@ def list(self, request, *args, **kwargs):
def partial_update(self, request, *args, **kwargs):
return super().partial_update(request, *args, **kwargs)

@invalidate_cache(path="/api/workspaces/", user=False)
@invalidate_cache(
path="/api/users/me/workspaces/", multiple=True, user=False
)
@invalidate_cache(
path="/api/users/me/settings/", multiple=True, user=False
)
@allow_permission([ROLE.ADMIN], level="WORKSPACE")
def destroy(self, request, *args, **kwargs):
return super().destroy(request, *args, **kwargs)
Expand All @@ -190,7 +176,6 @@ class UserWorkSpacesEndpoint(BaseAPIView):
"owner",
]

@cache_response(60 * 60 * 2)
@method_decorator(cache_control(private=True, max_age=12))
@method_decorator(vary_on_cookie)
def get(self, request):
Expand Down
19 changes: 1 addition & 18 deletions apiserver/plane/app/views/workspace/member.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
WorkspaceMember,
DraftIssue,
)
from plane.utils.cache import cache_response, invalidate_cache
from plane.utils.cache import invalidate_cache

from .. import BaseViewSet

Expand All @@ -66,7 +66,6 @@ def get_queryset(self):
.select_related("member")
)

@cache_response(60 * 60 * 2)
@allow_permission(
allowed_roles=[ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST], level="WORKSPACE"
)
Expand All @@ -93,12 +92,6 @@ def list(self, request, slug):
)
return Response(serializer.data, status=status.HTTP_200_OK)

@invalidate_cache(
path="/api/workspaces/:slug/members/",
url_params=True,
user=False,
multiple=True,
)
@allow_permission(allowed_roles=[ROLE.ADMIN], level="WORKSPACE")
def partial_update(self, request, slug, pk):
workspace_member = WorkspaceMember.objects.get(
Expand Down Expand Up @@ -127,16 +120,6 @@ def partial_update(self, request, slug, pk):
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

@invalidate_cache(
path="/api/workspaces/:slug/members/",
url_params=True,
user=False,
multiple=True,
)
@invalidate_cache(path="/api/users/me/settings/", multiple=True)
@invalidate_cache(
path="/api/users/me/workspaces/", user=False, multiple=True
)
@allow_permission(allowed_roles=[ROLE.ADMIN], level="WORKSPACE")
def destroy(self, request, slug, pk):
# Check the user role who is deleting the user
Expand Down

0 comments on commit a3e8ee6

Please sign in to comment.