mirror of https://github.com/jumpserver/jumpserver
perf: 优化校验登录城市名1
parent
ef2b7b464e
commit
e00c804a5a
|
@ -20,19 +20,22 @@ def check_different_city_login_if_need(user, request):
|
||||||
return
|
return
|
||||||
|
|
||||||
ip = get_request_ip(request) or '0.0.0.0'
|
ip = get_request_ip(request) or '0.0.0.0'
|
||||||
if not (ip and validate_ip(ip)):
|
|
||||||
city = DEFAULT_CITY
|
|
||||||
else:
|
|
||||||
city = get_ip_city(ip) or DEFAULT_CITY
|
|
||||||
|
|
||||||
city_white = [_('LAN'), 'LAN']
|
city_white = [_('LAN'), 'LAN']
|
||||||
is_private = ipaddress.ip_address(ip).is_private
|
is_private = ipaddress.ip_address(ip).is_private
|
||||||
if not is_private:
|
if is_private:
|
||||||
last_user_login = UserLoginLog.objects.exclude(city__in=city_white) \
|
return
|
||||||
.filter(username=user.username, status=True).first()
|
last_user_login = UserLoginLog.objects.exclude(
|
||||||
|
city__in=city_white
|
||||||
|
).filter(username=user.username, status=True).first()
|
||||||
|
if not last_user_login:
|
||||||
|
return
|
||||||
|
|
||||||
if last_user_login and last_user_login.city != city:
|
city = get_ip_city(ip)
|
||||||
DifferentCityLoginMessage(user, ip, city).publish_async()
|
last_city = get_ip_city(last_user_login.ip)
|
||||||
|
if city == last_city:
|
||||||
|
return
|
||||||
|
|
||||||
|
DifferentCityLoginMessage(user, ip, city).publish_async()
|
||||||
|
|
||||||
|
|
||||||
def build_absolute_uri(request, path=None):
|
def build_absolute_uri(request, path=None):
|
||||||
|
|
Loading…
Reference in New Issue