Ограничение API GET-запроса в зависимости от идентификатора пользователя / токена - Django Rest Framework - PullRequest
0 голосов
/ 07 мая 2018

Я хочу вернуть список файлов, связанных с пользователем в моей базе данных через REST.

Например, вернуть ответ для пользователя с идентификатором от 1 до:

http://localhost:8000/api/files/1/ -> {"информация о файле 1", "информация о файле 2", ...}

Однако я хочу убедиться, что ДРУГИЕ пользователи не могут получить доступ к вышеуказанной информации, поскольку их идентификатор не равен 1, т. Е. Если другой пользователь имеет идентификатор 2, вышеуказанный URL-адрес должен ответить «Отказано в доступе».

Я понимаю, что DRF имеет разрешение IsAuthenticated, однако это позволяет ВСЕМ зарегистрированным пользователям потенциально иметь доступ к информации о файлах других пользователей.

Каков наилучший метод для достижения этой цели?

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

DRF View обладает свойством «mission_classes ». Будет лучше запретить этот запрос в качестве разрешения.

0 голосов
/ 07 мая 2018

Если вы используете общий вид DRF, вы можете переопределить get_object() и добавить проверку там

def get_object(self):
    user = super(ViewClassName, self).get_object()
    if self.request.user != user:
        raise PermissionDenied
    return user
...