2009-03-02 3 views
3

한 가지 권한으로 새 모델을 추가 했으므로 코드를 배포하고 관련된 새 응용 프로그램에 대해 syncdb를 실행 한 후 프로덕션 컴퓨터의 일부 사용자에게 해당 권한을 추가해야합니다. 이 작업을 수행하는 올바른 방법을 찾지 못했습니다. auth 문서에는 User.user_permissions.add (권한)가 언급되어 있지만 '권한'이 무엇인지 또는 그 권한을 얻는 가장 좋은 방법은 알려주지 않습니다.사용 권한을 처리하는 적절한 방법은 무엇입니까?

답변

4

Permission (django.contrib.auth.models에있는)은 데이터베이스 개체입니다. 너는 Permission.objects.all()으로 그들 모두를 볼 수있을 것이다. 그들은 각 모델에 대한 포스트 동기화 신호에 의해 자동으로 생성됩니다 (또한 as the docs mention, 직접 정의 할 수도 있습니다).

사용자에게 사용 권한을 할당하려면 먼저 Permission 개체 (Permission.objects.get(*args) 사용)를 가져와야하며 언급 한대로 User.user_permissions.add(permission)을 사용하여 사용자에게 추가 할 수 있습니다.

더 쉬운 방법은 장고 관리 사이트를 사용하는 것입니다. 각 사용자의 세부 정보 페이지에는 사용 권한과 관련된 섹션이 있습니다. 나는 관리자 권한 밖에서 이러한 권한을 사용하지 않는 것으로 추측하고 있으므로 영향을받는 유일한 영역입니다. 모든 사용자에게 모든 권한을 부여하려면 각 사용자의 is_superuser 플래그를 True으로 설정하여 수퍼 유저로 지정할 수 있습니다.

+0

기술적으로 내가 기술적으로 묻는 질문에 대한 답변이지만 기술적으로 도움이 될만한 것이 있습니다. add_perm (Model, permission_name)과 같은 명백한 것을 놓쳤 으면 좋겠다. – ironfroggy

+0

아니, 그렇지 않았다. 기술적으로'User' 클래스의 django/contrib/auth/models.py를 보면'User' 인스턴스의 모든 메소드를 볼 수 있습니다. – obeattie

관련 문제