def forward_token(request, token_str=None, **kwargs): kwargs['extra_context'] = {} error = None token = get_object_or_404(Token, token=token_str) user_tokens = get_tokens_from_cookie(request) if not token.can_forward: error = _("Apologies! This token can not be forwarded.") else: if request.user.is_staff: pass elif not token.token in user_tokens: error = _("Apologies! You are not allowed to forward this token.") kwargs['extra_context']['token'] = token kwargs['extra_context']['error'] = error if not error: if request.method == 'POST': form = ForwardProtectedURLForm(token, request.POST) if form.is_valid(): if token.forward_count: token.forward_count = token.forward_count - len(form.cleaned_data['emails']) token.save() for email in form.cleaned_data['emails']: forwarded_token = Token( url=token.url, valid_until=token.valid_until, forward_count=0, email=email ) forwarded_token.save() forwarded_token.send_token_email() return HttpResponseRedirect(reverse('token_list')) else: form = ForwardProtectedURLForm(token) kwargs['extra_context']['form'] = form return direct_to_template(request, template='token_auth/forward_token.html', **kwargs)
def forward_token(request, token_str=None, **kwargs): kwargs['extra_context'] = {} error = None token = get_object_or_404(Token, token=token_str) user_tokens = get_tokens_from_cookie(request) if not token.can_forward: error = _("Apologies! This token can not be forwarded.") else: if request.user.is_staff: pass elif not token.token in user_tokens: error = _("Apologies! You are not allowed to forward this token.") kwargs['extra_context']['token'] = token kwargs['extra_context']['error'] = error if not error: if request.method == 'POST': form = ForwardProtectedURLForm(token, request.POST) if form.is_valid(): if token.forward_count: token.forward_count = token.forward_count - len( form.cleaned_data['emails']) token.save() for email in form.cleaned_data['emails']: forwarded_token = Token(url=token.url, valid_until=token.valid_until, forward_count=0, email=email) forwarded_token.save() forwarded_token.send_token_email() return HttpResponseRedirect(reverse('token_list')) else: form = ForwardProtectedURLForm(token) kwargs['extra_context']['form'] = form return direct_to_template(request, template='token_auth/forward_token.html', **kwargs)