2013-05-13 4 views
0

장고와 인증에 대해 조금 질문했습니다. 특정 종류의 조직에있는 사용자를 통해 액세스 할 수 있어야하는 앱이 있습니다. 예 : 사용자가 조직 유형 1에 있으면 그 사람은 할 수 있습니다. 그렇지 않으면 할 수 없습니다.앱에 대한 맞춤 액세스

사용 권한 또는 사용자 지정 미들웨어로 작업해야합니까?

+0

당신'에서'그룹 '과'permissions'을 사용할 수는 – karthikr

+0

조직 응용 프로그램에서 관리 django.contrib.auth', 나는 그렇게 할 그룹을 사용하지 않으 – billyJoe

답변

0

user_passes_test 데코레이터를 사용하십시오.

from django.contrib.auth.decorators import login_required,user_passes_test 
def is_auth(u): 
    #u is the request.user 
    if user_auth_for_page(u): 
      return True 
    return False 

def user_auth_for_page(u): 
    #your Authentication function here 
    #if user is in org1 return true 

@user_passes_test(lambda u: is_auth(u),login_url='/home/') 
@login_required 
def page(request): 
    ... 

다시 말하지만 가장 좋은 방법은 장고 그룹과 함께 사용하는 것입니다.

def is_auth(u,g): 
    l=u.groups.all() 
    for i in l: 
     if i.name==g: 
      return True 
    return False 
@user_passes_test(lambda u: is_auth(u,'admin'),login_url='/home/') 
관련 문제