fix: improve looking into submission request for remote ip. (#3720)

This commit is contained in:
Robert Sparks 2022-03-22 13:04:50 -05:00 committed by GitHub
parent a19802260c
commit 902e37d24d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 4 deletions

View file

@ -33,7 +33,7 @@ from ietf.meeting.models import Meeting
from ietf.message.models import Message from ietf.message.models import Message
from ietf.name.models import FormalLanguageName, GroupTypeName from ietf.name.models import FormalLanguageName, GroupTypeName
from ietf.submit.models import Submission, Preapproval from ietf.submit.models import Submission, Preapproval
from ietf.submit.utils import validate_submission_name, validate_submission_rev, validate_submission_document_date from ietf.submit.utils import validate_submission_name, validate_submission_rev, validate_submission_document_date, remote_ip
from ietf.submit.parsers.pdf_parser import PDFParser from ietf.submit.parsers.pdf_parser import PDFParser
from ietf.submit.parsers.plain_parser import PlainParser from ietf.submit.parsers.plain_parser import PlainParser
from ietf.submit.parsers.xml_parser import XMLParser from ietf.submit.parsers.xml_parser import XMLParser
@ -47,7 +47,7 @@ class SubmissionBaseUploadForm(forms.Form):
def __init__(self, request, *args, **kwargs): def __init__(self, request, *args, **kwargs):
super(SubmissionBaseUploadForm, self).__init__(*args, **kwargs) super(SubmissionBaseUploadForm, self).__init__(*args, **kwargs)
self.remote_ip = request.META.get('REMOTE_ADDR', None) self.remote_ip = remote_ip(request)
self.request = request self.request = request
self.in_first_cut_off = False self.in_first_cut_off = False

View file

@ -1019,3 +1019,12 @@ def update_submission_external_resources(submission, new_resources):
for new_res in new_resources: for new_res in new_resources:
new_res.submission = submission new_res.submission = submission
new_res.save() new_res.save()
def remote_ip(request):
if 'CF-Connecting-IP' in request.META:
remote_ip = request.META.get('CF-Connecting-IP')
elif 'X-Forwarded-For' in request.META:
remote_ip = request.META.get('X-Forwarded-For').split(',')[0]
else:
remote_ip = request.META.get('REMOTE_ADDR', None)
return remote_ip

View file

@ -39,7 +39,7 @@ from ietf.submit.utils import ( approvable_submissions_for_user, preapprovals_fo
post_submission, cancel_submission, rename_submission_files, remove_submission_files, get_draft_meta, post_submission, cancel_submission, rename_submission_files, remove_submission_files, get_draft_meta,
get_submission, fill_in_submission, apply_checkers, save_files, get_submission, fill_in_submission, apply_checkers, save_files,
check_submission_revision_consistency, accept_submission, accept_submission_requires_group_approval, check_submission_revision_consistency, accept_submission, accept_submission_requires_group_approval,
accept_submission_requires_prev_auth_approval, update_submission_external_resources ) accept_submission_requires_prev_auth_approval, update_submission_external_resources, remote_ip )
from ietf.stats.utils import clean_country_name from ietf.stats.utils import clean_country_name
from ietf.utils.accesstoken import generate_access_token from ietf.utils.accesstoken import generate_access_token
from ietf.utils.log import log from ietf.utils.log import log
@ -729,7 +729,7 @@ def add_manualpost_email(request, submission_id=None, access_token=None):
submission, submission_email_event = ( submission, submission_email_event = (
add_submission_email(request=request, add_submission_email(request=request,
remote_ip=request.META.get('REMOTE_ADDR', None), remote_ip=remote_ip(request),
name = form.draft_name, name = form.draft_name,
rev=form.revision, rev=form.revision,
submission_pk = submission_pk, submission_pk = submission_pk,