mirror of https://github.com/jumpserver/jumpserver
perf: 优化 Session 支持 duration 字段
parent
a6228f145d
commit
cf1e048328
|
@ -2,6 +2,7 @@ from __future__ import unicode_literals
|
|||
|
||||
import os
|
||||
import uuid
|
||||
from datetime import timedelta
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
|
@ -233,6 +234,14 @@ class Session(OrgModelMixin):
|
|||
target_ip = instance.get_target_ip() if instance else ''
|
||||
return target_ip
|
||||
|
||||
@property
|
||||
def duration(self):
|
||||
date_end = self.date_end or timezone.now()
|
||||
delta = date_end - self.date_start
|
||||
# 去掉毫秒的显示
|
||||
delta = timedelta(seconds=int(delta.total_seconds()))
|
||||
return str(delta)
|
||||
|
||||
@classmethod
|
||||
def generate_fake(cls, count=100, is_finished=True):
|
||||
import random
|
||||
|
|
|
@ -37,13 +37,14 @@ class SessionSerializer(BulkOrgResourceModelSerializer):
|
|||
"user", "asset", "user_id", "asset_id", 'account', 'account_id',
|
||||
"protocol", 'type', "login_from", "remote_addr",
|
||||
"is_success", "is_finished", "has_replay", "has_command",
|
||||
"date_start", "date_end", "comment", "terminal_display", "is_locked",
|
||||
"date_start", "date_end", "duration", "comment", "terminal_display", "is_locked",
|
||||
'command_amount', 'error_reason'
|
||||
]
|
||||
fields_fk = ["terminal", ]
|
||||
fields_custom = ["can_replay", "can_join", "can_terminate"]
|
||||
fields = fields_small + fields_fk + fields_custom
|
||||
extra_kwargs = {
|
||||
"Duration": {'label': _('Duration')},
|
||||
"protocol": {'label': _('Protocol')},
|
||||
'user_id': {'label': _('User ID')},
|
||||
'asset_id': {'label': _('Asset ID')},
|
||||
|
|
Loading…
Reference in New Issue