2013-04-22 7 views
0

Я создаю приложение с открытым доступом, ограниченную зону для клиентов и другую ограниченную зону для менеджеров.Различия пользователей и экстрасети Django

У меня есть модель Manager и модель Client с внешним ключом для пользователей. А менеджер автоматически добавляется в группу managers и клиент к clients.

У меня есть экстрасеть для клиента, которая теперь ограничена @login_required. Это же касается экстрасети для менеджеров.

Мне нужно отключить доступ клиентов к экстрасети менеджеров.

Лучше ли создавать привилегии в группе менеджеров и добавлять их ко всем представлениям в части экстрасети или как-то иначе?

ответ

0

Один из способов заключается в использовании user_passes_test декоратора:

Добавьте эту строку перед зрения, которую вы хотите ограничить менеджеров.

@user_passes_test(lambda u: u.groups.filter(name='managers').count() > 0, login_url='/myapp/denied/') 
Смежные вопросы