feat: disapprove user

This commit is contained in:
Markos Gogoulos 2025-10-09 17:29:29 +03:00
parent f4ab60e894
commit b39072c8ae

View File

@ -337,7 +337,7 @@ class UserDetail(APIView):
@swagger_auto_schema( @swagger_auto_schema(
manual_parameters=[ manual_parameters=[
openapi.Parameter(name='action', in_=openapi.IN_FORM, type=openapi.TYPE_STRING, required=True, description="action to perform ('change_password' or 'approve_user')"), openapi.Parameter(name='action', in_=openapi.IN_FORM, type=openapi.TYPE_STRING, required=True, description="action to perform ('change_password' or 'approve_user' or 'disapprove_user')"),
openapi.Parameter(name='password', in_=openapi.IN_FORM, type=openapi.TYPE_STRING, required=False, description="new password (if action is 'change_password')"), openapi.Parameter(name='password', in_=openapi.IN_FORM, type=openapi.TYPE_STRING, required=False, description="new password (if action is 'change_password')"),
], ],
tags=['Users'], tags=['Users'],
@ -364,6 +364,11 @@ class UserDetail(APIView):
raise PermissionDenied("You do not have permission to approve users.") raise PermissionDenied("You do not have permission to approve users.")
user.is_approved = True user.is_approved = True
user.save() user.save()
elif action == "disapprove_user":
if not is_mediacms_manager(request.user):
raise PermissionDenied("You do not have permission to approve users.")
user.is_approved = False
user.save()
else: else:
return Response({"detail": "Invalid action"}, status=status.HTTP_400_BAD_REQUEST) return Response({"detail": "Invalid action"}, status=status.HTTP_400_BAD_REQUEST)