Django Permissions system - deep dive with Users, Groups and Permissions
- Django의 내장 권한 시스템은 사용자, 그룹, 권한 모델을 중심으로 구성됩니다. 🧑🤝🧑
- 사용자 모델은 개별 사용자를 나타내며, 사용자 이름, 비밀번호, 이메일 등의 정보를 저장합니다. 👤
- 권한은 사용자에게 직접 할당할 수 있습니다. 🔑
- 그룹 모델은 사용자를 그룹으로 묶어 관리할 수 있게 합니다. 👥
- 그룹에 속한 사용자는 그룹의 권한을 상속받습니다. 🛡️
- 권한 모델은 사용자가 수행할 수 있는 동작을 정의합니다. ⚙️
- Django는 모델마다 기본적으로 추가, 변경, 삭제, 보기 권한을 생성합니다. ➕
- 슈퍼유저는 모든 권한 검사를 무시합니다. 🦸
- Django의 권한은 기본적으로 모델 수준에서 적용됩니다. 📁
permission_required 데코레이터를 사용하여 특정 권한이 있는 사용자만 뷰에 접근하도록 제한할 수 있습니다. 🔒
- 사용자에게 권한을 직접 할당하거나, 그룹을 통해 권한을 할당할 수 있습니다. ✅
- 데이터베이스에서 사용자 권한은
auth_user_permissions 테이블에 저장됩니다. 🗄️
- 그룹 권한은
auth_group_permissions 테이블에 저장됩니다. 📊
- Django Guardian은 객체 수준 권한을 구현하는 데 유용한 패키지입니다. 📦