@Romanuss

Как заблокировать доступ к API?

Здравствуйте, имеется задача ограничить определённый апи-адресс, возвращающий данные об организациях. Зарегистрированый пользователь может удалять данные, через запрос DELETE и создавать данные с помошью POST.

Как можно ограничить доступ для удаления данных, которые пользователь не добавлял?

Для иных запросов использую (permissions.py):

class IsBuisnessman(permissions.BasePermission):
    def has_permission(self, request, view):
        if request.method == 'GET':
            return True
            
        elif request.method == 'POST':
            return request.user.type == 2


views.py:

class BookViewSet(NestedViewSetMixin, viewsets.ModelViewSet):
    queryset = Book.objects.all()
    model = Book
    serializer_class = BookSerializer
    http_method_names = ['get', 'post', 'delete']
    permission_classes = (IsAuthenticated, )

    def get_queryset(self):
        return Book.objects.filter(user=self.request.user).all()

    def perform_create(self, serializer):
        booking_option = BookingOption.objects.get(pk=self.request.data.get('booking_option'))
        serializer.save(user=self.request.user)


Как можно ограничить удаление данных с помошью has_permission?
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы