Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: remove caching for avatar and logo apis to handle updates on avatar and logos. #6072

Merged
merged 1 commit into from
Nov 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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