2015-11-03 2 views
1

Я хочу реализовать разрешения на основе разрешений в соответствии с разрешениями на основе объектов. Я знаю, что когда у меня есть модель с именем A, создаются три разрешения can_add, can_edit, can_delete, которые связаны с A. Теперь, могу ли я иметь модель, содержащую аналогичную запись, но основанную на представлении. Итак, когда я говорю can_view_login_page, создается запись о разрешении, и когда я помещаю ее выше вида как @method_decorator(permission_required('can_view_login_page')), она разрешает или запрещает доступ на основе роли/группы? Мой вопрос может показаться туманным, но я не могу понять, как это сделать.Django, разрешение на основе разрешения, аналогичное разрешению на объект.

ответ

1

Это не может быть именно то, что вы ищете, но есть user_passes_test

Вы можете использовать этот метод декоратора, чтобы проверить, имеет ли пользователь правильные учетные данные для того, чтобы увидеть страницу

from django.contrib.auth.decorators import user_passes_test 

def can_view_login(user): 
    return user.can_view_login 

@user_passes_test(can_view_login) 
def my_view(request): 
+0

Это отличная вещь, которую я определенно могу использовать. Спасибо @Sayse –

+0

@RajeshYogeshwar - Не беспокойтесь, наслаждайтесь! – Sayse

Смежные вопросы