0

저는 학습 관리 시스템을 개발 중입니다.Django, 우리가 다른 역할을 할 때 행 수준 권한 시스템을 사용/설계

시스템에는 학생, 교사, 관리자, 학장 등 여러 명의 배우가 있습니다. 이제 다른 역할을 처리 할 수있는 권한 시스템이 필요합니다. 학생들은 코스를 CRUD 할 수 있고 관리자는 금융 부분에 대한 액세스 등)

내 연구에 따르면 다른 역할을 처리 할 수있는 행 수준 권한 시스템이 필요합니다. django-guardiandjang-permissionsdjango-rulez 등과 같은 앱을 보았습니다.하지만 여전히 이들을 기반으로 역할을 디자인하는 방법에 대해서는 혼란 스럽습니다.

아무도 나에게이 고통스런 일을 끝내기위한 힌트를 줄 수 있습니까 ??

답변

1

장고 난 당신이 추적의 문서를 읽어 볼 것을 권합니다

에 내장 정말 멋진 인증/권한 부여 API를 가지고 : https://docs.djangoproject.com/en/dev/topics/auth/이 당신에게 기초를 제공합니다.

응용 프로그램의 경우 가장 좋은 방법은 코스를 편집 할 권한과 같은 cetain에 대한 사용 권한을 설정하는 것입니다. 그럼 당신은 그 일을 할 수 있도록보기에 필요한 데코레이터 권한을 사용할 수 있습니다.

def edit_course(request): 
    ...#handle form rendering/submission for course model 

당신이이보기 위에 추가 할 수 있습니다 :

@permission_required('course_editor') 
def edit_course(request): 
    ...#handle form rendering/submission for course model 

과 기능의 조각에 액세스 할 수 있습니다이 권한을 가지고 만 사용자 예를 들어 경우보기를했다.

예를 들어, 권한을 지정할 수있는 그룹을 만들어 추가 할 수 있습니다. 선생님 그룹을 만든 다음이 그룹에 모든 직원을 지정할 수 있으며이 'course_editor'권한을 상속 받게됩니다.

하지만이 질문은 특정 답변에 대해 약간 넓기 때문에 최선의 방법은 위의 URL에있는 의사를 찾는 것입니다.

+0

답장을 보내 주셔서 감사합니다. 즉, 객체 (행) 권한이 필요 없다는 의미입니다. 실제로 장고 문서에서 Auth 파트를 읽었습니다. – Soask

+1

아니요. 위에서 설명한 것처럼 대부분의 것을 처리 할 수 ​​있습니다. 그렇게하면 요청에서 User 객체에 액세스 할 수 있습니다. – Ctrlspc

관련 문제