|
7 | 7 | from rest_framework.generics import (GenericAPIView, ListCreateAPIView,
|
8 | 8 | RetrieveUpdateAPIView)
|
9 | 9 | from rest_framework.response import Response
|
10 |
| -from rest_framework.exceptions import ParseError, PermissionDenied |
| 10 | +from rest_framework.exceptions import ParseError |
11 | 11 | from rest_framework import permissions
|
12 | 12 | from rest_framework import status
|
13 | 13 |
|
|
18 | 18 | from .serializers import (ECUserSignupSerializer, ECUserResponseSerializerClass,
|
19 | 19 | ECUserSerializer)
|
20 | 20 | from .utils import create_token, get_token_from_request
|
| 21 | +from .permissions import check_user_is_owner |
21 | 22 |
|
22 | 23 | logger = logging.getLogger(__name__)
|
23 | 24 |
|
@@ -105,12 +106,25 @@ def get_queryset(self):
|
105 | 106 |
|
106 | 107 | def get(self, request, *args, **kwargs):
|
107 | 108 | user = self.get_object()
|
108 |
| - if not request.user == user: |
109 |
| - raise PermissionDenied() |
| 109 | + check_user_is_owner(user, request) |
110 | 110 | user_serializer = self.get_serializer(instance=user)
|
111 | 111 | return Response(user_serializer.data,
|
112 | 112 | status=200)
|
113 | 113 |
|
| 114 | + def patch(self, request, *args, **kwargs): |
| 115 | + user = self.get_object() |
| 116 | + check_user_is_owner(user, request) |
| 117 | + data = request.data |
| 118 | + with transaction.atomic(): |
| 119 | + user_serializer = self.get_serializer(instance=user, data=data, |
| 120 | + partial=True) |
| 121 | + if not user_serializer.is_valid(): |
| 122 | + raise APIError(status=400, |
| 123 | + message=user_serializer.errors, |
| 124 | + show=True) |
| 125 | + user_serializer.save() |
| 126 | + return Response(status=200, |
| 127 | + data=user_serializer.data) |
114 | 128 |
|
115 | 129 | class Oauth2ECUserLoginView(GenericAPIView):
|
116 | 130 |
|
|
0 commit comments