mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-16 07:18:22 +00:00
merge: with v3
This commit is contained in:
@@ -15,13 +15,13 @@ class CommandBase(object):
|
||||
|
||||
@abc.abstractmethod
|
||||
def filter(self, date_from=None, date_to=None,
|
||||
user=None, asset=None, system_user=None,
|
||||
user=None, asset=None, account=None,
|
||||
input=None, session=None, risk_level=None, org_id=None):
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def count(self, date_from=None, date_to=None,
|
||||
user=None, asset=None, system_user=None,
|
||||
user=None, asset=None, account=None,
|
||||
input=None, session=None):
|
||||
pass
|
||||
|
||||
|
@@ -21,7 +21,7 @@ class CommandStore(CommandBase):
|
||||
"""
|
||||
self.model.objects.create(
|
||||
user=command["user"], asset=command["asset"],
|
||||
system_user=command["system_user"], input=command["input"],
|
||||
account=command["account"], input=command["input"],
|
||||
output=command["output"], session=command["session"],
|
||||
risk_level=command.get("risk_level", 0), org_id=command["org_id"],
|
||||
timestamp=command["timestamp"]
|
||||
@@ -36,7 +36,7 @@ class CommandStore(CommandBase):
|
||||
cmd_input = pretty_string(c['input'])
|
||||
cmd_output = pretty_string(c['output'], max_length=1024)
|
||||
_commands.append(self.model(
|
||||
user=c["user"], asset=c["asset"], system_user=c["system_user"],
|
||||
user=c["user"], asset=c["asset"], account=c["account"],
|
||||
input=cmd_input, output=cmd_output, session=c["session"],
|
||||
risk_level=c.get("risk_level", 0), org_id=c["org_id"],
|
||||
timestamp=c["timestamp"]
|
||||
@@ -64,7 +64,7 @@ class CommandStore(CommandBase):
|
||||
@staticmethod
|
||||
def make_filter_kwargs(
|
||||
date_from=None, date_to=None,
|
||||
user=None, asset=None, system_user=None,
|
||||
user=None, asset=None, account=None,
|
||||
input=None, session=None, risk_level=None, org_id=None):
|
||||
filter_kwargs = {}
|
||||
date_from_default = timezone.now() - datetime.timedelta(days=7)
|
||||
@@ -87,8 +87,8 @@ class CommandStore(CommandBase):
|
||||
filter_kwargs["user__startswith"] = user
|
||||
if asset:
|
||||
filter_kwargs['asset'] = asset
|
||||
if system_user:
|
||||
filter_kwargs['system_user'] = system_user
|
||||
if account:
|
||||
filter_kwargs['account'] = account
|
||||
if input:
|
||||
filter_kwargs['input__icontains'] = input
|
||||
if session:
|
||||
@@ -100,22 +100,22 @@ class CommandStore(CommandBase):
|
||||
return filter_kwargs
|
||||
|
||||
def filter(self, date_from=None, date_to=None,
|
||||
user=None, asset=None, system_user=None,
|
||||
user=None, asset=None, account=None,
|
||||
input=None, session=None, risk_level=None, org_id=None):
|
||||
filter_kwargs = self.make_filter_kwargs(
|
||||
date_from=date_from, date_to=date_to, user=user,
|
||||
asset=asset, system_user=system_user, input=input,
|
||||
asset=asset, account=account, input=input,
|
||||
session=session, risk_level=risk_level, org_id=org_id,
|
||||
)
|
||||
queryset = self.model.objects.filter(**filter_kwargs)
|
||||
return queryset
|
||||
|
||||
def count(self, date_from=None, date_to=None,
|
||||
user=None, asset=None, system_user=None,
|
||||
user=None, asset=None, account=None,
|
||||
input=None, session=None):
|
||||
filter_kwargs = self.make_filter_kwargs(
|
||||
date_from=date_from, date_to=date_to, user=user,
|
||||
asset=asset, system_user=system_user, input=input,
|
||||
asset=asset, account=account, input=input,
|
||||
session=session,
|
||||
)
|
||||
count = self.model.objects.filter(**filter_kwargs).count()
|
||||
|
@@ -37,7 +37,7 @@ class CommandStore(ES):
|
||||
def make_data(command):
|
||||
data = dict(
|
||||
user=command["user"], asset=command["asset"],
|
||||
system_user=command["system_user"], input=command["input"],
|
||||
account=command["account"], input=command["input"],
|
||||
output=command["output"], risk_level=command["risk_level"],
|
||||
session=command["session"], timestamp=command["timestamp"],
|
||||
org_id=command["org_id"]
|
||||
|
@@ -19,7 +19,7 @@ class AbstractSessionCommand(OrgModelMixin):
|
||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||
user = models.CharField(max_length=64, db_index=True, verbose_name=_("User"))
|
||||
asset = models.CharField(max_length=128, db_index=True, verbose_name=_("Asset"))
|
||||
system_user = models.CharField(max_length=64, db_index=True, verbose_name=_("System user"))
|
||||
account = models.CharField(max_length=64, db_index=True, verbose_name=_("Account"))
|
||||
input = models.CharField(max_length=128, db_index=True, verbose_name=_("Input"))
|
||||
output = models.CharField(max_length=1024, blank=True, verbose_name=_("Output"))
|
||||
session = models.CharField(max_length=36, db_index=True, verbose_name=_("Session"))
|
||||
|
@@ -33,7 +33,8 @@ class SessionCommandSerializer(SimpleSessionCommandSerializer):
|
||||
"""使用这个类作为基础Command Log Serializer类, 用来序列化"""
|
||||
|
||||
id = serializers.UUIDField(read_only=True)
|
||||
system_user = serializers.CharField(label=_("System user")) # 限制 64 字符,不能直接迁移成 128 字符,命令表数据量会比较大
|
||||
# 限制 64 字符,不能直接迁移成 128 字符,命令表数据量会比较大
|
||||
account = serializers.CharField(label=_("Account "))
|
||||
output = serializers.CharField(max_length=2048, allow_blank=True, label=_("Output"))
|
||||
risk_level_display = serializers.SerializerMethodField(label=_('Risk level display'))
|
||||
timestamp = serializers.IntegerField(label=_('Timestamp'))
|
||||
@@ -45,7 +46,7 @@ class SessionCommandSerializer(SimpleSessionCommandSerializer):
|
||||
risk_mapper = dict(AbstractSessionCommand.RISK_LEVEL_CHOICES)
|
||||
return risk_mapper.get(obj.risk_level)
|
||||
|
||||
def validate_system_user(self, value):
|
||||
def validate_account(self, value):
|
||||
if len(value) > 64:
|
||||
value = pretty_string(value, 64)
|
||||
return value
|
||||
|
Reference in New Issue
Block a user