mirror of https://github.com/jumpserver/jumpserver
perf: 优化清除日志天数系统配置校验逻辑
parent
dd50044b89
commit
e71e8cd595
|
@ -204,14 +204,3 @@ MAX_LIMIT_PER_PAGE = CONFIG.MAX_LIMIT_PER_PAGE
|
||||||
# Magnus DB Port
|
# Magnus DB Port
|
||||||
MAGNUS_ORACLE_PORTS = CONFIG.MAGNUS_ORACLE_PORTS
|
MAGNUS_ORACLE_PORTS = CONFIG.MAGNUS_ORACLE_PORTS
|
||||||
LIMIT_SUPER_PRIV = CONFIG.LIMIT_SUPER_PRIV
|
LIMIT_SUPER_PRIV = CONFIG.LIMIT_SUPER_PRIV
|
||||||
|
|
||||||
LOG_NAMES = [
|
|
||||||
'LOGIN_LOG_KEEP_DAYS', 'TASK_LOG_KEEP_DAYS',
|
|
||||||
'OPERATE_LOG_KEEP_DAYS', 'FTP_LOG_KEEP_DAYS',
|
|
||||||
'CLOUD_SYNC_TASK_EXECUTION_KEEP_DAYS',
|
|
||||||
'ACTIVITY_LOG_KEEP_DAYS', 'TERMINAL_SESSION_KEEP_DURATION'
|
|
||||||
]
|
|
||||||
if LIMIT_SUPER_PRIV:
|
|
||||||
for name in LOG_NAMES:
|
|
||||||
if globals()[name] < 180:
|
|
||||||
globals()[name] = 180
|
|
||||||
|
|
|
@ -1,55 +1,41 @@
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.serializers import ValidationError
|
|
||||||
|
|
||||||
__all__ = ['CleaningSerializer']
|
__all__ = ['CleaningSerializer']
|
||||||
|
|
||||||
|
MIN_VALUE = 180 if settings.LIMIT_SUPER_PRIV else 1
|
||||||
|
|
||||||
|
|
||||||
class CleaningSerializer(serializers.Serializer):
|
class CleaningSerializer(serializers.Serializer):
|
||||||
PREFIX_TITLE = _('Period clean')
|
PREFIX_TITLE = _('Period clean')
|
||||||
|
|
||||||
LOGIN_LOG_KEEP_DAYS = serializers.IntegerField(
|
LOGIN_LOG_KEEP_DAYS = serializers.IntegerField(
|
||||||
min_value=1, max_value=9999,
|
min_value=MIN_VALUE, max_value=9999,
|
||||||
label=_("Login log keep days (day)"),
|
label=_("Login log keep days (day)"),
|
||||||
)
|
)
|
||||||
TASK_LOG_KEEP_DAYS = serializers.IntegerField(
|
TASK_LOG_KEEP_DAYS = serializers.IntegerField(
|
||||||
min_value=1, max_value=9999,
|
min_value=MIN_VALUE, max_value=9999,
|
||||||
label=_("Task log keep days (day)"),
|
label=_("Task log keep days (day)"),
|
||||||
)
|
)
|
||||||
OPERATE_LOG_KEEP_DAYS = serializers.IntegerField(
|
OPERATE_LOG_KEEP_DAYS = serializers.IntegerField(
|
||||||
min_value=1, max_value=9999,
|
min_value=MIN_VALUE, max_value=9999,
|
||||||
label=_("Operate log keep days (day)"),
|
label=_("Operate log keep days (day)"),
|
||||||
)
|
)
|
||||||
FTP_LOG_KEEP_DAYS = serializers.IntegerField(
|
FTP_LOG_KEEP_DAYS = serializers.IntegerField(
|
||||||
min_value=1, max_value=9999,
|
min_value=MIN_VALUE, max_value=9999,
|
||||||
label=_("FTP log keep days (day)"),
|
label=_("FTP log keep days (day)"),
|
||||||
)
|
)
|
||||||
CLOUD_SYNC_TASK_EXECUTION_KEEP_DAYS = serializers.IntegerField(
|
CLOUD_SYNC_TASK_EXECUTION_KEEP_DAYS = serializers.IntegerField(
|
||||||
min_value=1, max_value=9999,
|
min_value=MIN_VALUE, max_value=9999,
|
||||||
label=_("Cloud sync record keep days (day)"),
|
label=_("Cloud sync record keep days (day)"),
|
||||||
)
|
)
|
||||||
ACTIVITY_LOG_KEEP_DAYS = serializers.IntegerField(
|
ACTIVITY_LOG_KEEP_DAYS = serializers.IntegerField(
|
||||||
min_value=1, max_value=9999,
|
min_value=MIN_VALUE, max_value=9999,
|
||||||
label=_("Activity log keep days (day)"),
|
label=_("Activity log keep days (day)"),
|
||||||
)
|
)
|
||||||
TERMINAL_SESSION_KEEP_DURATION = serializers.IntegerField(
|
TERMINAL_SESSION_KEEP_DURATION = serializers.IntegerField(
|
||||||
min_value=1, max_value=99999, required=True, label=_('Session keep duration (day)'),
|
min_value=MIN_VALUE, max_value=99999, required=True, label=_('Session keep duration (day)'),
|
||||||
help_text=_(
|
help_text=_(
|
||||||
'Session, record, command will be delete if more than duration, only in database, OSS will not be affected.')
|
'Session, record, command will be delete if more than duration, only in database, OSS will not be affected.')
|
||||||
)
|
)
|
||||||
MIN_DAYS_THRESHOLD = 180
|
|
||||||
|
|
||||||
def validate(self, attrs):
|
|
||||||
attrs = super().validate(attrs)
|
|
||||||
if not settings.LIMIT_SUPER_PRIV:
|
|
||||||
return attrs
|
|
||||||
|
|
||||||
error_names = [
|
|
||||||
name for name in settings.LOG_NAMES
|
|
||||||
if attrs.get(name, 0) < self.MIN_DAYS_THRESHOLD
|
|
||||||
]
|
|
||||||
if error_names:
|
|
||||||
error_message = _('must be greater than {} days.').format(self.MIN_DAYS_THRESHOLD)
|
|
||||||
raise ValidationError({name: error_message for name in error_names})
|
|
||||||
return attrs
|
|
||||||
|
|
Loading…
Reference in New Issue