views: only show the forwarding form if user limitations allows it to send the document filetype, fixes #3625

This commit is contained in:
Benjamin Dauvergne 2013-09-16 19:16:24 +02:00
parent aeba55812b
commit 55422f752d
1 changed files with 23 additions and 19 deletions

View File

@ -236,25 +236,29 @@ def message(request, mailbox_id, back='inbox'):
ctx = { 'document': document,
'view_name': back, 'back': back_pair, 'mailbox': mailbox }
if back == 'inbox':
if request.method == 'POST':
form = ForwardingForm(request.POST, user=request.user)
if form.is_valid():
users, lists = form_to_user_and_list(form)
recipients_count, forwarded_document = document.forward(
form.cleaned_data['sender'], lists, users)
request.record('forward-document', 'forwarded document '
'{document} as new document {new_document}',
document=forwarded_document.from_document,
new_document=forwarded_document.to_document)
msg = ungettext('Document forwarded to {recipients_count} '
'recipient.', 'Document forwarded to {recipients_count} '
'recipients.', recipients_count) \
.format(recipients_count=recipients_count)
messages.info(request, msg)
return HttpResponseRedirect('')
else:
form = ForwardingForm(user=request.user)
ctx['form'] = form
limitations = get_filetype_limitation(request.user)
if not limitations or limitations.filter(id=mailbox.document.filetype.id).exists():
if request.method == 'POST':
form = ForwardingForm(request.POST, user=request.user,
**get_file_form_kwargs(request))
if form.is_valid():
users, lists = form_to_user_and_list(form)
recipients_count, forwarded_document = document.forward(
form.cleaned_data['sender'], lists, users)
request.record('forward-document', 'forwarded document '
'{document} as new document {new_document}',
document=forwarded_document.from_document,
new_document=forwarded_document.to_document)
msg = ungettext('Document forwarded to {recipients_count} '
'recipient.', 'Document forwarded to {recipients_count} '
'recipients.', recipients_count) \
.format(recipients_count=recipients_count)
messages.info(request, msg)
return HttpResponseRedirect('')
else:
form = ForwardingForm(user=request.user,
**get_file_form_kwargs(request))
ctx['form'] = form
ctx['delegated'] = mailbox.owner != request.user
delegate = mailbox.owner if ctx['delegated'] else None
ctx['attached_files'] = attached_files = []