last_ip
This commit is contained in:
parent
a925d2f623
commit
6ad4e0d46f
18
apps/account/migrations/0030_user_last_ip.py
Normal file
18
apps/account/migrations/0030_user_last_ip.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.7 on 2020-01-10 11:25
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('account', '0029_auto_20200109_1354'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='last_ip',
|
||||
field=models.GenericIPAddressField(blank=True, default=None, null=True, verbose_name='last IP address'),
|
||||
),
|
||||
]
|
||||
|
|
@ -136,6 +136,7 @@ class User(AbstractUser):
|
|||
verbose_name=_('User last used locale'))
|
||||
city = models.TextField(default=None, blank=True, null=True,
|
||||
verbose_name=_('User last visited from city'))
|
||||
last_ip = models.GenericIPAddressField(_('last IP address'), blank=True, null=True, default=None)
|
||||
|
||||
EMAIL_FIELD = 'email'
|
||||
USERNAME_FIELD = 'username'
|
||||
|
|
|
|||
|
|
@ -14,8 +14,10 @@ def get_locale(cookie_dict):
|
|||
def get_country_code(cookie_dict):
|
||||
return cookie_dict.get('country_code')
|
||||
|
||||
|
||||
def user_last_visit(get_response):
|
||||
"""Updates user last visit w/ current"""
|
||||
|
||||
def middleware(request):
|
||||
response = get_response(request)
|
||||
if request.user.is_authenticated:
|
||||
|
|
@ -25,10 +27,13 @@ def user_last_visit(get_response):
|
|||
'city': determine_user_city(request),
|
||||
})
|
||||
return response
|
||||
|
||||
return middleware
|
||||
|
||||
|
||||
def parse_cookies(get_response):
|
||||
"""Parse cookies."""
|
||||
|
||||
def middleware(request):
|
||||
cookie_dict = request.COOKIES
|
||||
# processing locale cookie
|
||||
|
|
@ -45,4 +50,28 @@ def parse_cookies(get_response):
|
|||
|
||||
response = get_response(request)
|
||||
return response
|
||||
|
||||
return middleware
|
||||
|
||||
|
||||
def get_client_ip(request):
|
||||
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
|
||||
if x_forwarded_for:
|
||||
ip = x_forwarded_for.split(',')[0]
|
||||
else:
|
||||
ip = request.META.get('REMOTE_ADDR')
|
||||
return ip
|
||||
|
||||
|
||||
def user_last_ip(get_response):
|
||||
"""Update user last ip address"""
|
||||
|
||||
def middleware(request):
|
||||
response = get_response(request)
|
||||
if request.user.is_authenticated:
|
||||
User.objects.filter(pk=request.user.pk).update(**{
|
||||
'last_ip': get_client_ip(request),
|
||||
})
|
||||
return response
|
||||
|
||||
return middleware
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user