mirror of https://github.com/jumpserver/jumpserver
perf: Add last login date update for account on session save
parent
ff9ad2680f
commit
385bf47b11
|
@ -108,7 +108,7 @@ class AccountFilterSet(BaseFilterSet):
|
|||
)
|
||||
|
||||
if kwargs:
|
||||
queryset = queryset.filter(date_last_login__gte=date)
|
||||
queryset = queryset.filter(**kwargs)
|
||||
return queryset
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from simple_history.models import HistoricalRecords
|
||||
|
||||
|
@ -167,6 +168,10 @@ class Account(AbsConnectivity, LabeledMixin, BaseAccount):
|
|||
|
||||
return escape(value)
|
||||
|
||||
def update_last_login_date(self):
|
||||
self.date_last_login = timezone.now()
|
||||
self.save(update_fields=['date_last_login'])
|
||||
|
||||
|
||||
def replace_history_model_with_mixin():
|
||||
"""
|
||||
|
|
|
@ -11,6 +11,7 @@ from django.db import models
|
|||
from django.utils import timezone
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from accounts.models import Account
|
||||
from assets.models import Asset
|
||||
from common.const.signals import OP_LOG_SKIP_SIGNAL
|
||||
from common.utils import get_object_or_none, lazyproperty
|
||||
|
@ -125,6 +126,10 @@ class Session(OrgModelMixin):
|
|||
def user_obj(self):
|
||||
return User.objects.get(id=self.user_id)
|
||||
|
||||
@property
|
||||
def account_obj(self):
|
||||
return get_object_or_none(Account, pk=self.account_id)
|
||||
|
||||
def can_replay(self):
|
||||
return self.has_replay
|
||||
|
||||
|
|
|
@ -5,9 +5,11 @@ from terminal.models import Session
|
|||
|
||||
|
||||
@receiver(pre_save, sender=Session)
|
||||
def on_session_pre_save(sender, instance,**kwargs):
|
||||
def on_session_pre_save(sender, instance, **kwargs):
|
||||
if instance.need_update_cmd_amount:
|
||||
instance.cmd_amount = instance.compute_command_amount()
|
||||
if instance.account_obj:
|
||||
instance.account_obj.update_last_login_date()
|
||||
|
||||
|
||||
@receiver(post_save, sender=Session)
|
||||
|
@ -16,4 +18,3 @@ def on_session_finished(sender, instance: Session, created, **kwargs):
|
|||
return
|
||||
# 清理一次可能因 task 未执行的缓存数据
|
||||
Session.unlock_session(instance.id)
|
||||
|
||||
|
|
Loading…
Reference in New Issue