perf: 增加登录日志详情

pull/9449/head
jiangweidong 2023-02-07 09:49:17 +08:00
parent cb362b2fe4
commit a1300e2886
3 changed files with 13 additions and 4 deletions

View File

@ -49,8 +49,8 @@ class UserLoginCommonMixin:
date_range_filter_fields = [
('datetime', ('date_from', 'date_to'))
]
filterset_fields = ['username', 'ip', 'city', 'type', 'status', 'mfa']
search_fields = ['username', 'ip', 'city']
filterset_fields = ['id', 'username', 'ip', 'city', 'type', 'status', 'mfa']
search_fields = ['id', 'username', 'ip', 'city']
class UserLoginLogViewSet(UserLoginCommonMixin, ListModelMixin, JMSGenericViewSet):

View File

@ -259,6 +259,10 @@ def generate_data(username, request, login_type=None, user_id=None):
with translation.override('en'):
backend = str(get_login_backend(request))
if user_id is None:
user = User.objects.filter(username=username).first()
user_id = getattr(user, 'id', None)
data = {
'user_id': user_id,
'username': username,

View File

@ -6,7 +6,7 @@ from django.db import models
from django.http import HttpResponse
from django.utils.translation import gettext_lazy as _
from common.utils import validate_ip, get_ip_city, get_logger
from common.utils import validate_ip, get_ip_city, get_logger, reverse
from audits.const import ActivityChoices
from settings.serializers import SettingsSerializer
from .const import DEFAULT_CITY
@ -53,8 +53,13 @@ def write_login_log(*args, **kwargs):
detail = _('User {} login into this service.[{}]').format(
audit_log.username, login_status
)
detail_url = '%s?id=%s' % (
reverse('api-audits:login-log-list', api_to_ui=True, is_audit=True,),
audit_log.id
)
post_activity_log.send(
sender=UserLoginLog, resource_id=user_id, detail=detail,
sender=UserLoginLog, resource_id=user_id,
detail=detail, detail_url=detail_url,
type=ActivityChoices.login_log
)