From f0d1279a427cb9bca3985b6c6944a5e998290887 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Mon, 15 Apr 2024 11:26:22 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9user=20session=20?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD=20(#13019)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/authentication/api/session.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/authentication/api/session.py b/apps/authentication/api/session.py index 3cf27329b..37d4f82b5 100644 --- a/apps/authentication/api/session.py +++ b/apps/authentication/api/session.py @@ -3,11 +3,11 @@ from threading import Thread from django.conf import settings from django.contrib.auth import logout +from django.contrib.auth.models import AnonymousUser from rest_framework import generics from rest_framework import status from rest_framework.response import Response -from common.permissions import IsValidUser from common.sessions.cache import user_session_manager from common.utils import get_logger @@ -51,12 +51,18 @@ class UserSessionManager: class UserSessionApi(generics.RetrieveDestroyAPIView): - permission_classes = (IsValidUser,) + permission_classes = () def retrieve(self, request, *args, **kwargs): + if isinstance(request.user, AnonymousUser): + return Response(status=status.HTTP_200_OK) + UserSessionManager(request).connect() return Response(status=status.HTTP_200_OK) def destroy(self, request, *args, **kwargs): + if isinstance(request.user, AnonymousUser): + return Response(status=status.HTTP_200_OK) + UserSessionManager(request).disconnect() return Response(status=status.HTTP_204_NO_CONTENT)