mirror of https://github.com/jumpserver/jumpserver
[Update] 登录日志逻辑修改变量名
parent
2eda58eadd
commit
43370c547a
|
@ -150,23 +150,23 @@ class UserOtpAuthApi(APIView):
|
||||||
|
|
||||||
if not check_otp_code(user.otp_secret_key, otp_code):
|
if not check_otp_code(user.otp_secret_key, otp_code):
|
||||||
# Write login failed log
|
# Write login failed log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'mfa': int(user.otp_enabled),
|
'mfa': int(user.otp_enabled),
|
||||||
'reason': LoginLog.REASON_MFA,
|
'reason': LoginLog.REASON_MFA,
|
||||||
'status': False
|
'status': False
|
||||||
}
|
}
|
||||||
self.write_login_log(request, **kwargs)
|
self.write_login_log(request, data)
|
||||||
return Response({'msg': 'MFA认证失败'}, status=401)
|
return Response({'msg': 'MFA认证失败'}, status=401)
|
||||||
|
|
||||||
# Write login success log
|
# Write login success log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'mfa': int(user.otp_enabled),
|
'mfa': int(user.otp_enabled),
|
||||||
'reason': LoginLog.REASON_NOTHING,
|
'reason': LoginLog.REASON_NOTHING,
|
||||||
'status': True
|
'status': True
|
||||||
}
|
}
|
||||||
self.write_login_log(request, **kwargs)
|
self.write_login_log(request, data)
|
||||||
token = generate_token(request, user)
|
token = generate_token(request, user)
|
||||||
return Response(
|
return Response(
|
||||||
{
|
{
|
||||||
|
@ -176,7 +176,7 @@ class UserOtpAuthApi(APIView):
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def write_login_log(request, **kwargs):
|
def write_login_log(request, data):
|
||||||
login_ip = request.data.get('remote_addr', None)
|
login_ip = request.data.get('remote_addr', None)
|
||||||
login_type = request.data.get('login_type', '')
|
login_type = request.data.get('login_type', '')
|
||||||
user_agent = request.data.get('HTTP_USER_AGENT', '')
|
user_agent = request.data.get('HTTP_USER_AGENT', '')
|
||||||
|
@ -184,13 +184,13 @@ class UserOtpAuthApi(APIView):
|
||||||
if not login_ip:
|
if not login_ip:
|
||||||
login_ip = get_login_ip(request)
|
login_ip = get_login_ip(request)
|
||||||
|
|
||||||
data = {
|
tmp_data = {
|
||||||
'ip': login_ip,
|
'ip': login_ip,
|
||||||
'type': login_type,
|
'type': login_type,
|
||||||
'user_agent': user_agent
|
'user_agent': user_agent
|
||||||
}
|
}
|
||||||
kwargs.update(data)
|
data.update(tmp_data)
|
||||||
write_login_log_async.delay(**kwargs)
|
write_login_log_async.delay(**data)
|
||||||
|
|
||||||
|
|
||||||
class UserAuthApi(APIView):
|
class UserAuthApi(APIView):
|
||||||
|
@ -202,24 +202,24 @@ class UserAuthApi(APIView):
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
# Write login failed log
|
# Write login failed log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': request.data.get('username', ''),
|
'username': request.data.get('username', ''),
|
||||||
'mfa': LoginLog.MFA_UNKNOWN,
|
'mfa': LoginLog.MFA_UNKNOWN,
|
||||||
'reason': LoginLog.REASON_PASSWORD,
|
'reason': LoginLog.REASON_PASSWORD,
|
||||||
'status': False
|
'status': False
|
||||||
}
|
}
|
||||||
self.write_login_log(request, **kwargs)
|
self.write_login_log(request, data)
|
||||||
return Response({'msg': msg}, status=401)
|
return Response({'msg': msg}, status=401)
|
||||||
|
|
||||||
if not user.otp_enabled:
|
if not user.otp_enabled:
|
||||||
# Write login success log
|
# Write login success log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'mfa': int(user.otp_enabled),
|
'mfa': int(user.otp_enabled),
|
||||||
'reason': LoginLog.REASON_NOTHING,
|
'reason': LoginLog.REASON_NOTHING,
|
||||||
'status': True
|
'status': True
|
||||||
}
|
}
|
||||||
self.write_login_log(request, **kwargs)
|
self.write_login_log(request, data)
|
||||||
token = generate_token(request, user)
|
token = generate_token(request, user)
|
||||||
return Response(
|
return Response(
|
||||||
{
|
{
|
||||||
|
@ -252,7 +252,7 @@ class UserAuthApi(APIView):
|
||||||
return user, msg
|
return user, msg
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def write_login_log(request, **kwargs):
|
def write_login_log(request, data):
|
||||||
login_ip = request.data.get('remote_addr', None)
|
login_ip = request.data.get('remote_addr', None)
|
||||||
login_type = request.data.get('login_type', '')
|
login_type = request.data.get('login_type', '')
|
||||||
user_agent = request.data.get('HTTP_USER_AGENT', '')
|
user_agent = request.data.get('HTTP_USER_AGENT', '')
|
||||||
|
@ -260,14 +260,14 @@ class UserAuthApi(APIView):
|
||||||
if not login_ip:
|
if not login_ip:
|
||||||
login_ip = get_login_ip(request)
|
login_ip = get_login_ip(request)
|
||||||
|
|
||||||
data = {
|
tmp_data = {
|
||||||
'ip': login_ip,
|
'ip': login_ip,
|
||||||
'type': login_type,
|
'type': login_type,
|
||||||
'user_agent': user_agent,
|
'user_agent': user_agent,
|
||||||
}
|
}
|
||||||
kwargs.update(data)
|
data.update(tmp_data)
|
||||||
|
|
||||||
write_login_log_async.delay(**kwargs)
|
write_login_log_async.delay(**data)
|
||||||
|
|
||||||
|
|
||||||
class UserConnectionTokenApi(APIView):
|
class UserConnectionTokenApi(APIView):
|
||||||
|
|
|
@ -67,13 +67,13 @@ class UserLoginView(FormView):
|
||||||
|
|
||||||
def form_invalid(self, form):
|
def form_invalid(self, form):
|
||||||
# Write login failed log
|
# Write login failed log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': form.cleaned_data.get('username'),
|
'username': form.cleaned_data.get('username'),
|
||||||
'mfa': LoginLog.MFA_UNKNOWN,
|
'mfa': LoginLog.MFA_UNKNOWN,
|
||||||
'reason': LoginLog.REASON_PASSWORD,
|
'reason': LoginLog.REASON_PASSWORD,
|
||||||
'status': False
|
'status': False
|
||||||
}
|
}
|
||||||
self.write_login_log(**kwargs)
|
self.write_login_log(data)
|
||||||
|
|
||||||
ip = get_login_ip(self.request)
|
ip = get_login_ip(self.request)
|
||||||
cache.set(self.key_prefix.format(ip), 1, 3600)
|
cache.set(self.key_prefix.format(ip), 1, 3600)
|
||||||
|
@ -102,13 +102,13 @@ class UserLoginView(FormView):
|
||||||
# 0 & T,F
|
# 0 & T,F
|
||||||
auth_login(self.request, user)
|
auth_login(self.request, user)
|
||||||
# Write login success log
|
# Write login success log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': self.request.user.username,
|
'username': self.request.user.username,
|
||||||
'mfa': int(self.request.user.otp_enabled),
|
'mfa': int(self.request.user.otp_enabled),
|
||||||
'reason': LoginLog.REASON_NOTHING,
|
'reason': LoginLog.REASON_NOTHING,
|
||||||
'status': True
|
'status': True
|
||||||
}
|
}
|
||||||
self.write_login_log(**kwargs)
|
self.write_login_log(data)
|
||||||
return redirect_user_first_login_or_index(self.request, self.redirect_field_name)
|
return redirect_user_first_login_or_index(self.request, self.redirect_field_name)
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
|
@ -118,16 +118,16 @@ class UserLoginView(FormView):
|
||||||
kwargs.update(context)
|
kwargs.update(context)
|
||||||
return super().get_context_data(**kwargs)
|
return super().get_context_data(**kwargs)
|
||||||
|
|
||||||
def write_login_log(self, **kwargs):
|
def write_login_log(self, data):
|
||||||
login_ip = get_login_ip(self.request)
|
login_ip = get_login_ip(self.request)
|
||||||
user_agent = self.request.META.get('HTTP_USER_AGENT', '')
|
user_agent = self.request.META.get('HTTP_USER_AGENT', '')
|
||||||
data = {
|
tmp_data = {
|
||||||
'ip': login_ip,
|
'ip': login_ip,
|
||||||
'type': 'W',
|
'type': 'W',
|
||||||
'user_agent': user_agent
|
'user_agent': user_agent
|
||||||
}
|
}
|
||||||
kwargs.update(data)
|
data.update(tmp_data)
|
||||||
write_login_log_async.delay(**kwargs)
|
write_login_log_async.delay(**data)
|
||||||
|
|
||||||
|
|
||||||
class UserLoginOtpView(FormView):
|
class UserLoginOtpView(FormView):
|
||||||
|
@ -143,39 +143,39 @@ class UserLoginOtpView(FormView):
|
||||||
if check_otp_code(otp_secret_key, otp_code):
|
if check_otp_code(otp_secret_key, otp_code):
|
||||||
auth_login(self.request, user)
|
auth_login(self.request, user)
|
||||||
# Write login success log
|
# Write login success log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': self.request.user.username,
|
'username': self.request.user.username,
|
||||||
'mfa': int(self.request.user.otp_enabled),
|
'mfa': int(self.request.user.otp_enabled),
|
||||||
'reason': LoginLog.REASON_NOTHING,
|
'reason': LoginLog.REASON_NOTHING,
|
||||||
'status': True
|
'status': True
|
||||||
}
|
}
|
||||||
self.write_login_log(**kwargs)
|
self.write_login_log(data)
|
||||||
return redirect(self.get_success_url())
|
return redirect(self.get_success_url())
|
||||||
else:
|
else:
|
||||||
# Write login failed log
|
# Write login failed log
|
||||||
kwargs = {
|
data = {
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'mfa': int(user.otp_enabled),
|
'mfa': int(user.otp_enabled),
|
||||||
'reason': LoginLog.REASON_MFA,
|
'reason': LoginLog.REASON_MFA,
|
||||||
'status': False
|
'status': False
|
||||||
}
|
}
|
||||||
self.write_login_log(**kwargs)
|
self.write_login_log(data)
|
||||||
form.add_error('otp_code', _('MFA code invalid'))
|
form.add_error('otp_code', _('MFA code invalid'))
|
||||||
return super().form_invalid(form)
|
return super().form_invalid(form)
|
||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return redirect_user_first_login_or_index(self.request, self.redirect_field_name)
|
return redirect_user_first_login_or_index(self.request, self.redirect_field_name)
|
||||||
|
|
||||||
def write_login_log(self, **kwargs):
|
def write_login_log(self, data):
|
||||||
login_ip = get_login_ip(self.request)
|
login_ip = get_login_ip(self.request)
|
||||||
user_agent = self.request.META.get('HTTP_USER_AGENT', '')
|
user_agent = self.request.META.get('HTTP_USER_AGENT', '')
|
||||||
data = {
|
tmp_data = {
|
||||||
'ip': login_ip,
|
'ip': login_ip,
|
||||||
'type': 'W',
|
'type': 'W',
|
||||||
'user_agent': user_agent
|
'user_agent': user_agent
|
||||||
}
|
}
|
||||||
kwargs.update(data)
|
data.update(tmp_data)
|
||||||
write_login_log_async.delay(**kwargs)
|
write_login_log_async.delay(**data)
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(never_cache, name='dispatch')
|
@method_decorator(never_cache, name='dispatch')
|
||||||
|
|
Loading…
Reference in New Issue