2

메신저 창고, 항목 및 presonell을 관리하는 것을 목표로 장고 프로젝트에서 일하고 있습니다. 다음과 같은 모델이 있습니다 : WarehouseMode, ItemModel 및 PersonellModel. 전체 액세스 권한을 -Django에서 어떤 권한 시스템을 사용해야합니까?

  1. 관리를 :

    관리자는 사용자를 생성하고 그들에게 따라와 역할 중 하나에 할당 할 수 있어야합니다.

  2. 창고 관리자 - 제한된 권한 (추가, 삭제, 항목 및 presonell 수정)
  3. 개별웨어 하우스 사용자 -
  4. 다른 데이터베이스 가입자 (개인 프로필을 수정) 제한된 액세스를 - (읽기 전용)

"창고 관리자"는 단지 하나의 창고의 "소유자"여야합니다.

어떤 사용 권한 시스템을 사용해야합니까? 행 단위 권한 시스템?

감사

답변

3

행 수준 권한은 확실히이 구현 결국, 여러분의 인생을 더 쉽게 만드는 것이다, 그러나 경험에서 말하기 확실히 다른 작업에서 별도의 흐름을 작성해야 뭔가하고 많이 할 테스트. 행 수준 권한으로 최근에 사용한 구조는 다음과 같습니다.

약간의 경험을봤을 때 장고 가디언이며, 클래스 기반 뷰와 믹스 인을 사용하는 것이 훨씬 더 효율적이라고 생각했습니다.

https://github.com/lukaszb/django-guardian.git

class Meta: 
    permissions = (
    ('can_view', 'View project'), 
    ('manage_view', 'Can assign View project'), 
    ('can_edit', 'Edit project'), 
    ('manage_edit', 'Can assign Edit project'), 
    ('can_delete', 'Delete project'), 
    ('manage_delete', 'Can assign Delete project'), 
    ('creator', 'Full access to model features.'), 
    ) 
관련 문제