Как сделать Django REST User API со сложными разрешениями - PullRequest
0 голосов
/ 13 декабря 2018

Я хочу создать Django REST User API со сложными разрешениями следующим образом:

GET

  • Только администратор должен иметь возможность получать все данные пользователя
  • Авторизованный пользователь должен получить себе и имена других пользователей

PUT

  • Только администратор и Self должныбыть в состоянии PUT
  • За исключением is_staff и is_superuser только is_superuser должен иметь возможность изменять статус пользователя
  • Для изменения пароля пользователем требуется старый пароль
  • , еслиПользователь! Is_staff Сброс пароля должен быть возможным

POST / DELETE

  • Только администратор должен иметь возможность POST / DELETE User
  • Пользователь должен иметь возможность обновлять свой собственный профиль

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

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете написать свое собственное разрешение в соответствии с DRF Документами .

И добавить YourCustomPermission по вашему мнению:

class ExampleView(APIView):
    permission_classes = (YourCustomPermission,)
...