Я использую django-rest-auth
для конечных точек API для моей пользовательской модели.Получая информацию о пользователе, я отправляю запрос GET
на /rest-auth/user/
.Это хорошо работает с аутентифицированным пользователем, но запрещено для неаутентифицированного пользователя, отмеченного ошибкой 403 Forbidden
.
Однако я хочу, чтобы другие пользователи могли просматривать детали друг друга.Как я могу это изменить?
Этот тест демонстрирует эту ошибку:
def test_get_user(self):
# /rest-auth/user/ (GET)
# params: username, first_name, last_name
# returns: pk, username, email, first_name, last_name
client = APIClient()
client.login(username=self.user2.username,
password=self.user2.password)
path = "/rest-auth/user/"
user_data = {
"username": self.username,
}
expected_response = {
"pk": self.id,
"username": self.username,
"email": self.email,
"first_name": '',
"last_name": '',
}
response = client.get(path, user_data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data, expected_response)
РЕДАКТИРОВАТЬ: я пытался переопределить разрешения UserDetailsView, но мне не удалось сделать это должным образом.Как мне сделать это правильно?
from rest_auth import views
from rest_framework.permissions import IsAuthenticatedOrReadOnly
class CustomUserDetailsView(views.UserDetailsView):
permission_classes = (IsAuthenticatedOrReadOnly, )