Skip to content

Commit 27ea9f8

Browse files
authored
Merge pull request #24 from segment-oj/fix-response-ztl
Fix response ztl
2 parents 1356d68 + 8beda5a commit 27ea9f8

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

account/tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def testL0_change_not_admin(self):
169169
request = self.factory.patch(self.base_url, data=request_data, format="json")
170170
force_authenticate(request, User.objects.get(username="testuser"))
171171
res = self.view(request, uid=2)
172-
self.assertEqual(res.status_code, status.HTTP_204_NO_CONTENT)
172+
self.assertEqual(res.status_code, status.HTTP_403_FORBIDDEN)
173173

174174
target = User.objects.get(id=2)
175175
self.assertEqual(target.is_active, ac_data["is_active"])

account/views.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,31 @@ def post(self, request):
137137
def patch(self, request, uid):
138138
data = request.data
139139
user = get_object_or_404(User, id=uid)
140+
140141
if not request.user.has_perm("account.change_user"):
141142
if request.user.id != user.id:
142143
return Response({
143144
"detail": "You have no permission to change this user"
144145
}, status=status.HTTP_403_FORBIDDEN)
145-
146-
data.pop("is_active", None)
147-
data.pop("is_staff", None)
148-
data.pop("is_superuser", None)
146+
147+
request_is_active = data.get("is_active")
148+
request_is_staff = data.get("is_staff")
149+
request_is_superuser = data.get("is_superuser")
150+
151+
if request_is_active != None and request_is_active != user.is_active:
152+
return Response({
153+
"detail": "You have no permission to change this user"
154+
}, status=status.HTTP_403_FORBIDDEN)
155+
156+
if request_is_staff != None and request_is_staff != user.is_active:
157+
return Response({
158+
"detail": "You have no permission to change this user"
159+
}, status=status.HTTP_403_FORBIDDEN)
160+
161+
if request_is_superuser != None and request_is_superuser != user.is_superuser:
162+
return Response({
163+
"detail": "You have no permission to change this user"
164+
}, status=status.HTTP_403_FORBIDDEN)
149165

150166
us = AccountSerializer(user, data=data, partial=True)
151167
us.is_valid(raise_exception=True)

problem/serializers.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ class ProblemDescriptionSerializer(serializers.ModelSerializer):
3232
class Meta:
3333
model = Problem
3434
fields = [
35-
"pid",
3635
"description",
3736
]
3837

3938
depth = 0
40-
read_only_fields = ["id"]
4139

4240
class TagSerializer(serializers.ModelSerializer):
4341

problem/views.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ def get(self, request):
163163
ts = TagSerializer(queryset, many=True)
164164

165165
return Response({
166-
"detail": "Success",
167166
"count": queryset.count(),
168167
"res": ts.data
169168
}, status=status.HTTP_200_OK)

0 commit comments

Comments
 (0)