인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김동혁님의 프로필 이미지
김동혁

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

Authentication과 Permission

django 기본 제공해주는 권한 사용할려면

작성

·

385

0

상기 그림과 같이
django 기본 제공해주는 권한 사용할려면
DjangoModelPermissions를 사용해야되나요?
 
생각보다 많이 어렵네요 

답변 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의 권한을 체크하게 됩니다.

화이팅입니다. :-)

김동혁님의 프로필 이미지
김동혁

작성한 질문수

질문하기