Skip to content

Commit dcf5425

Browse files
rando128rando128
authored andcommitted
feat(people): do not expose sender_uuid in public serializer; restrict users API to admins
1 parent f2e962f commit dcf5425

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

back/back/apps/people/serializers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ class Meta:
3737
class AuthUserSerializer(serializers.ModelSerializer):
3838
"""
3939
Serializer used when the user is authenticated on /api/me/
40+
41+
NOTE: sender_uuid intentionally NOT included here to avoid exposing it to
42+
frontend clients. AdminUserSerializer still exposes it for admin use.
4043
"""
4144

4245
class Meta:
@@ -46,7 +49,6 @@ class Meta:
4649
"first_name",
4750
"last_name",
4851
"email",
49-
"sender_uuid",
5052
]
5153

5254
is_authenticated = serializers.BooleanField()

back/back/apps/people/views.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,14 @@ def post(self, request, format=None):
113113

114114

115115
class UserAPIViewSet(viewsets.ModelViewSet):
116+
"""
117+
Admin-only CRUD for users. Keep AdminUserSerializer (fields="__all__"),
118+
but make access explicit and restricted to admins so sender_uuid is not
119+
leaked to non-admins.
120+
"""
116121
queryset = User.objects.all()
117122
serializer_class = AdminUserSerializer
123+
permission_classes = [permissions.IsAdminUser] # Ensure only admins can read/write all fields
118124
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
119125
filterset_fields = ["id"]
120126

0 commit comments

Comments
 (0)