Fixing IP address saving after HAProxy originally obscured it.

This commit is contained in:
Samuel Clay 2013-06-04 12:31:45 -07:00
parent d0e3958ed7
commit 631ea2de0c
5 changed files with 17 additions and 12 deletions

View file

@ -105,7 +105,7 @@ def reader_authorize(request):
approval_prompt="force",
)
logging.user(request, "~BB~FW~SBAuthorize Google Reader import - %s" % (
request.META['REMOTE_ADDR'],
request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', ""),
))
authorize_url = FLOW.step1_get_authorize_url(redirect_uri=STEP2_URI)
@ -119,18 +119,19 @@ def reader_authorize(request):
OAuthToken.objects.filter(user=request.user).delete()
auth_token_dict['user'] = request.user
else:
ip = request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', "")
OAuthToken.objects.filter(session_id=request.session.session_key).delete()
OAuthToken.objects.filter(remote_ip=request.META['REMOTE_ADDR']).delete()
OAuthToken.objects.filter(remote_ip=ip).delete()
auth_token_dict['uuid'] = str(uuid.uuid4())
auth_token_dict['session_id'] = request.session.session_key
auth_token_dict['remote_ip'] = request.META['REMOTE_ADDR']
auth_token_dict['remote_ip'] = ip
OAuthToken.objects.create(**auth_token_dict)
response.set_cookie('newsblur_reader_uuid', str(uuid.uuid4()))
return response
def reader_callback(request):
ip = request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', "")
domain = Site.objects.get_current().domain
STEP2_URI = "http://%s%s" % (
(domain + '.com') if not domain.endswith('.com') else domain,
@ -165,7 +166,7 @@ def reader_callback(request):
if session.session_key:
user_token = OAuthToken.objects.filter(session_id=request.session.session_key).order_by('-created_date')
if not user_token:
user_token = OAuthToken.objects.filter(remote_ip=request.META['REMOTE_ADDR']).order_by('-created_date')
user_token = OAuthToken.objects.filter(remote_ip=ip).order_by('-created_date')
if user_token:
user_token = user_token[0]
@ -176,7 +177,7 @@ def reader_callback(request):
# Fetch imported feeds on next page load
request.session['import_from_google_reader'] = True
logging.user(request, "~BB~FW~SBFinishing Google Reader import - %s" % (request.META['REMOTE_ADDR'],))
logging.user(request, "~BB~FW~SBFinishing Google Reader import - %s" % ip)
if request.user.is_authenticated():
return render_to_response('social/social_connect.xhtml', {}, context_instance=RequestContext(request))
@ -233,6 +234,8 @@ def import_starred_stories_from_google_reader(request):
return dict(code=code, delayed=delayed, feed_count=feed_count, starred_count=starred_count)
def import_signup(request):
ip = request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', "")
if request.method == "POST":
signup_form = SignupForm(prefix='signup', data=request.POST)
if signup_form.is_valid():
@ -247,7 +250,7 @@ def import_signup(request):
if request.session.session_key:
user_token = OAuthToken.objects.filter(session_id=request.session.session_key).order_by('-created_date')
if not user_token:
user_token = OAuthToken.objects.filter(remote_ip=request.META['REMOTE_ADDR']).order_by('-created_date')
user_token = OAuthToken.objects.filter(remote_ip=ip).order_by('-created_date')
if user_token:
user_token = user_token[0]

View file

@ -14,14 +14,15 @@ class LastSeenMiddleware(object):
and hasattr(request, 'user')
and request.user.is_authenticated()):
hour_ago = datetime.datetime.utcnow() - datetime.timedelta(minutes=60)
ip = request.META.get('HTTP_X_REAL_IP', None) or request.META['REMOTE_ADDR']
# SUBSCRIBER_EXPIRE = datetime.datetime.utcnow() - datetime.timedelta(days=settings.SUBSCRIBER_EXPIRE)
if request.user.profile.last_seen_on < hour_ago:
logging.user(request, "~FG~BBRepeat visitor: ~SB%s (%s)" % (
request.user.profile.last_seen_on, request.META['REMOTE_ADDR']))
request.user.profile.last_seen_on, ip))
# if request.user.profile.last_seen_on < SUBSCRIBER_EXPIRE:
# request.user.profile.refresh_stale_feeds()
request.user.profile.last_seen_on = datetime.datetime.utcnow()
request.user.profile.last_seen_ip = request.META['REMOTE_ADDR']
request.user.profile.last_seen_ip = ip
request.user.profile.save()
return response

View file

@ -22,10 +22,11 @@ class PaymentForm(forms.Form):
"""Process a PayPal direct payment."""
from vendor.paypal.pro.helpers import PayPalWPP
wpp = PayPalWPP(request)
ip = request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', "")
params = self.cleaned_data
params['creditcardtype'] = self.fields['acct'].card_type
params['expdate'] = self.cleaned_data['expdate'].strftime("%m%Y")
params['ipaddress'] = request.META.get("REMOTE_ADDR", "")
params['ipaddress'] = ip
params.update(item)
# Create single payment:

View file

@ -56,7 +56,7 @@ class PayPalNVP(models.Model):
def init(self, request, paypal_request, paypal_response):
"""Initialize a PayPalNVP instance from a HttpRequest."""
self.ipaddress = request.META.get('REMOTE_ADDR', '')
self.ipaddress = request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', "")
if hasattr(request, "user") and request.user.is_authenticated():
self.user = request.user

View file

@ -245,7 +245,7 @@ class PayPalStandardBase(models.Model):
def initialize(self, request):
"""Store the data we'll need to make the postback from the request object."""
self.query = getattr(request, request.method).urlencode()
self.ipaddress = request.META.get('REMOTE_ADDR', '')
self.ipaddress = request.META.get('HTTP_X_REAL_IP', None) or request.META.get('REMOTE_ADDR', "")
def send_signals(self):
"""After a transaction is completed use this to send success/fail signals"""