2012-05-24 4 views
0

장고 관리 도구를 사용하고 있으며 매우 간단한 모델입니다. 특정 사용자 또는 특정 그룹에 대한 특정 암호에 대한 액세스를 제한하고 싶습니다. '예/아니오/안 함'액세스에 대해 3 가지 조건을 만들 수 있으며 사용자가 예 + 그룹을 가질 때 아니오 액세스 권한이 있지만 예 + 아니요, 그렇지 않은 경우 액세스 할 수 있습니다. 어떻게 django-admin-tools 권한 시스템을 사용하여 작업하게 할 수 있습니까?django에서 특정 행에 대한 액세스를 제한하는 방법

from django.db import models 
from passwords.objects.labels.models import Label 

class Password(models.Model): 
    class Meta: 
     db_table = 'passwords' 

    name = models.CharField(max_length=32) 
    username = models.CharField(max_length=32) 
    password = models.CharField(max_length=32) 
    labels = models.ManyToManyField(Label) 

    def __unicode__(self): 
     return self.name 

답변

0

박스 중, 장고는 클래스 수준의 권한을 지원합니다 (즉, 테이블 권한).

이 개체 수준 (행 레벨) 권한에 대한 지원은하지만 밖으로 상자의 구현과 장고가 제공되지 않습니다

객체 수준 권한

권한을 지정하기위한 기반을 오브젝트 당 레벨에 이 추가되었습니다. 이것을 핵심으로 구현하지는 않지만 사용자 인증 백엔드가이 구현을 제공 할 수 있으며 은 django.contrib.auth.models.User에서 사용됩니다. 자세한 내용은 인증 문서를 참조하십시오.

따라서이 기능을 사용하는 django-guardian과 같은 타사 앱이 있습니다.

0

관리자와 협력하고 있으므로 ModelAdminhas_add_permission, has_change_permissionhas_delete_permission 방법을 무시할 수 있습니다. 그러나 나는 사용자/그룹에 "예/아니오/안 함"권한이 어떻게 첨부되는지 모른 채 더 이상 당신을 도울 수 없습니다.

당신은 바보 간단하게 유지하려면 UPDATE, 가장 좋은 방법은 간단하게 예를 들어 그룹, "PASSWORDACCESS"를 생성하는 것입니다. 그런 다음 해당 그룹에 원하는 사용자를 할당하고 Password에 대한 기본 추가, 변경 및 삭제 권한 만 해당 그룹에 할당하십시오.

그 밖의 것은 필요하지 않습니다. 해당 그룹에 추가 된 모든 사용자는 Password에 대한 사용 권한을 자동으로 상속받습니다. 다른 사용자는 해당 사용 권한을 가지지 않으므로 관리자에게 표시되지 않습니다.

+0

예/아니오/절대로 너무 복잡해서 특히 파이썬을 배우기 시작 했으므로 예/아니오를 설정하여 모든 사용자에게 개별 권한이 있거나 그룹에 있어야합니다. 암호를 읽을 수있는 권한. – user1415982

+0

위 업데이트를 참조하십시오. –

관련 문제