작성
·
385
답변 1
0
안녕하세요.
말씀하신 대로 DRF에서 제공하는 Permissions 클래스 중에 장고 기본의 권한 시스템을 활용할려면 DjangoModelPermissions 클래스나 DjangoObjectPermissions 클래스를 사용해볼 수 있습니다.
DjangoModelPermissions는 has_permissions를 구현하였으며, DjangoModelPermissions.perms_map 매핑 대로, 해당 APIView가 호출될 때 request.method의 권한을 체크하게 됩니다. // 아래의 perms_map을 보시면 GET 요청은 빈 리스트로서 별도의 권한 체크를 하지 않습니다. 그러니 DjangoModelPermissions가 지정되어있는 APIView에 권한이 없는 조회 요청도 허용이 됩니다.
장고 기본의 권한 시스템에서는 기본적으로 각 모델 별로 view/add/change/delete 권한을 사용할 수 있도록 미리 세팅되어져있습니다. 'GET' 요청 시에 view 권한을 지정할려면 ['%(app_label)s.view_%(model_name)s'] 을 지정하시어 처리를 해보실 수도 있습니다.
DjangoObjectPermissions 클래스는 DjangoModelPermissions를 상속받았으며, has_object_permissions를 구현하였습니다. APIView의 get_object가 호출이 될 때, DjangoObjectPermissions.perms_map 매핑대로 request.method의 권한을 체크하게 됩니다.
화이팅입니다. :-)