From 7acd0a46cff216b3ed9225d6fe9449549bf18458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eik=20Hvattum=20R=C3=B8geberg?= Date: Fri, 11 Oct 2024 12:44:15 +0200 Subject: [PATCH] Remove unused DetailedUserSerializer Well, almost unused. Replaced the usage in the response of reset_password with CurrentUserSerializer --- lego/apps/jwt/handlers.py | 4 +-- lego/apps/users/serializers/users.py | 43 +------------------------ lego/apps/users/views/password_reset.py | 4 +-- lego/apps/users/views/users.py | 12 +++---- 4 files changed, 11 insertions(+), 52 deletions(-) diff --git a/lego/apps/jwt/handlers.py b/lego/apps/jwt/handlers.py index cdb41eb1c..fb66e2687 100644 --- a/lego/apps/jwt/handlers.py +++ b/lego/apps/jwt/handlers.py @@ -1,7 +1,7 @@ from rest_framework_jwt.settings import api_settings from lego.apps.stats.utils import track -from lego.apps.users.serializers.users import MeSerializer +from lego.apps.users.serializers.users import CurrentUserSerializer jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER @@ -13,7 +13,7 @@ def response_handler(token, user=None, request=None, issued_at=None): which includes the serialized representation of the User. """ track(user, "authenticate") - return {"token": token, "user": MeSerializer(user).data} + return {"token": token, "user": CurrentUserSerializer(user).data} def get_jwt_token(user): diff --git a/lego/apps/users/serializers/users.py b/lego/apps/users/serializers/users.py index f4fd34170..d48252e71 100644 --- a/lego/apps/users/serializers/users.py +++ b/lego/apps/users/serializers/users.py @@ -15,47 +15,6 @@ from lego.utils.fields import PrimaryKeyRelatedFieldNoPKOpt -class DetailedUserSerializer(serializers.ModelSerializer): - abakus_groups = PublicAbakusGroupSerializer(many=True) - past_memberships = PastMembershipSerializer(many=True) - penalties = serializers.SerializerMethodField("get_valid_penalties") - profile_picture = ImageField(required=False, options={"height": 200, "width": 200}) - profile_picture_placeholder = ImageField( - source="profile_picture", - required=False, - options={"height": 20, "width": 20, "filters": ["blur(20)"]}, - ) - - def get_valid_penalties(self, user): - qs = Penalty.objects.valid().filter(user=user) - serializer = PenaltySerializer(instance=qs, many=True) - return serializer.data - - class Meta: - model = User - fields = ( - "id", - "username", - "first_name", - "last_name", - "full_name", - "gender", - "email", - "email_address", - "email_lists_enabled", - "profile_picture", - "profile_picture_placeholder", - "allergies", - "is_active", - "penalties", - "abakus_groups", - "past_memberships", - "permissions_per_group", - "github_username", - "linkedin_id", - ) - - class PublicUserSerializer(serializers.ModelSerializer): profile_picture = ImageField(required=False, options={"height": 200, "width": 200}) profile_picture_placeholder = ImageField( @@ -205,7 +164,7 @@ def get_is_student(self, user): return user.is_verified_student() -class MeSerializer(serializers.ModelSerializer): +class CurrentUserSerializer(serializers.ModelSerializer): """ Serializer for the /me, retrieve and update endpoint with EDIT permissions. Also used by our JWT handler and returned to the user when a user obtains a JWT token. diff --git a/lego/apps/users/views/password_reset.py b/lego/apps/users/views/password_reset.py index 28a3c230b..3b3b2b9ef 100644 --- a/lego/apps/users/views/password_reset.py +++ b/lego/apps/users/views/password_reset.py @@ -11,7 +11,7 @@ PasswordResetPerformSerializer, PasswordResetRequestSerializer, ) -from lego.apps.users.serializers.users import DetailedUserSerializer +from lego.apps.users.serializers.users import CurrentUserSerializer from lego.utils.tasks import send_email log = get_logger() @@ -67,4 +67,4 @@ def create(self, request, *args, **kwargs): user.set_password(password) user.save() - return Response(DetailedUserSerializer(user).data, status=status.HTTP_200_OK) + return Response(CurrentUserSerializer(user).data, status=status.HTTP_200_OK) diff --git a/lego/apps/users/views/users.py b/lego/apps/users/views/users.py index aba848973..4e66e0f76 100644 --- a/lego/apps/users/views/users.py +++ b/lego/apps/users/views/users.py @@ -17,7 +17,7 @@ from lego.apps.users.serializers.registration import RegistrationConfirmationSerializer from lego.apps.users.serializers.users import ( ChangeGradeSerializer, - MeSerializer, + CurrentUserSerializer, Oauth2UserDataSerializer, PublicUserSerializer, PublicUserWithGroupsSerializer, @@ -39,7 +39,7 @@ def get_queryset(self): def get_serializer_class(self): """ - Users should receive the DetailedUserSerializer if they tries to get themselves or have the + Users should receive the CurrentUserSerializer if they try to get themselves or have the EDIT permission. """ if self.action in ["retrieve", "update", "partial_update"]: @@ -52,7 +52,7 @@ def get_serializer_class(self): self.request.user.has_perm(EDIT, instance) or self.request.user == instance ): - return MeSerializer + return CurrentUserSerializer return PublicUserWithGroupsSerializer @@ -89,7 +89,7 @@ def oauth2_userdata(self, request): detail=False, methods=["GET"], permission_classes=[IsAuthenticated], - serializer_class=MeSerializer, + serializer_class=CurrentUserSerializer, ) def me(self, request): """ @@ -173,7 +173,7 @@ def change_grade(self, request, *args, **kwargs): if newGrade is not None: newGrade.add_user(user) - return Response(MeSerializer(user).data) + return Response(CurrentUserSerializer(user).data) def destroy(self, request, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) @@ -196,4 +196,4 @@ def update_photo_consent(self, request, *args, **kwargs): serializer.save() - return Response(MeSerializer(user).data) + return Response(CurrentUserSerializer(user).data)