def confirm(request, user_id, secret, request_id=None): if request.user.is_authenticated(): messages.add_message(request, messages.ERROR, _('You are logged in and cannot use a confirmation link.')) return HttpResponseRedirect(reverse('account-show')) user = get_object_or_404(auth.models.User, pk=int(user_id)) if user.is_active: raise Http404 account_manager = AccountManager(user) if account_manager.confirm_account(secret, request_id): messages.add_message(request, messages.WARNING, _('Your email address is now confirmed and you are logged in. You should change your password now by filling out the form below.')) login_user(request, user) if request_id is not None: foirequest = FoiRequest.confirmed_request(user, request_id) if foirequest: messages.add_message(request, messages.SUCCESS, _('Your request "%s" has now been sent') % foirequest.title) return HttpResponseRedirect(reverse('account-show') + "?new#change-password-now") else: messages.add_message(request, messages.ERROR, _('You can only use the confirmation link once, please login with your password.')) return HttpResponseRedirect(reverse('account-login'))