Skip to content

Commit 29061aa

Browse files
committed
[Bugfix] user login ip
1 parent dad21ca commit 29061aa

4 files changed

Lines changed: 16 additions & 6 deletions

File tree

apps/terminal/api.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,9 @@ def create_or_update_session(self, session_data):
141141
session = serializer.save()
142142
return session
143143
else:
144-
msg = "session data is not valid {}".format(serializer.errors)
144+
msg = "session data is not valid {}: {}".format(
145+
serializer.errors, str(serializer.data)
146+
)
145147
logger.error(msg)
146148
return None
147149

apps/users/api.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,11 @@ def post(self, request):
128128
user_agent = request.data.get('HTTP_USER_AGENT', '')
129129

130130
if not login_ip:
131-
login_ip = request.META.get('HTTP_X_FORWARDED_FOR') or request.META.get("REMOTE_ADDR")
131+
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR').split()
132+
if x_forwarded_for:
133+
login_ip = x_forwarded_for[0]
134+
else:
135+
login_ip = request.META.get("REMOTE_ADDR")
132136

133137
user, msg = check_user_valid(
134138
username=username, password=password,

apps/users/utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,9 @@ def validate_ip(ip):
180180

181181
def write_login_log(username, type='', ip='', user_agent=''):
182182
if not (ip and validate_ip(ip)):
183-
ip = '0.0.0.0'
184-
city = get_ip_city(ip)
183+
city = "Unknown"
184+
else:
185+
city = get_ip_city(ip)
185186
LoginLog.objects.create(
186187
username=username, type=type,
187188
ip=ip, city=city, user_agent=user_agent

apps/users/views/login.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@ def form_valid(self, form):
5353
if not self.request.session.test_cookie_worked():
5454
return HttpResponse(_("Please enable cookies and try again."))
5555
auth_login(self.request, form.get_user())
56-
login_ip = self.request.META.get('HTTP_X_FORWARDED_FOR') or \
57-
self.request.META.get('REMOTE_ADDR', '')
56+
x_forwarded_for = self.request.META.get('HTTP_X_FORWARDED_FOR', '').split()
57+
if x_forwarded_for:
58+
login_ip = x_forwarded_for[0]
59+
else:
60+
login_ip = self.request.META.get('REMOTE_ADDR', '')
5861
user_agent = self.request.META.get('HTTP_USER_AGENT', '')
5962
write_login_log_async.delay(
6063
self.request.user.username, type='W',

0 commit comments

Comments
 (0)