views: use delegation list to compute recipient limitations, fixes #3633

This commit is contained in:
Benjamin Dauvergne 2013-09-17 20:53:20 +02:00
parent 2de2128b0c
commit 454a2b1ae3
1 changed files with 15 additions and 2 deletions

View File

@ -85,9 +85,22 @@ def recursive_lists(lists):
def get_file_form_kwargs(request):
user = request.user
kwargs = {}
if is_guest(user):
user = user.delegations_by.get().by
delegators = []
else:
delegators = User.objects.filter(
Q(id=user.id) |
Q(delegations_to__to=user)).distinct()
user_lists = MailingList.objects.is_member_of(user)
own_limitations = MailingList.objects \
.filter(lists_limitation__mailing_list__in=user_lists) \
.distinct() \
.order_by('name')
if not own_limitations:
return {}
kwargs = {}
user_lists = MailingList.objects.are_member_of([user] + list(delegators))
if SendingLimitation.objects.filter(mailing_list__in=user_lists):
lists = MailingList.objects \
.filter(lists_limitation__mailing_list__in=user_lists) \