mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-06 11:36:32 +00:00
commit
35dfdf831a
@ -1,9 +0,0 @@
|
|||||||
from django.utils.translation import ugettext as _
|
|
||||||
|
|
||||||
|
|
||||||
common_help_text = _('Format for comma-delimited string, with * indicating a match all. ')
|
|
||||||
|
|
||||||
ip_group_help_text = common_help_text + _(
|
|
||||||
'Such as: '
|
|
||||||
'192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 '
|
|
||||||
)
|
|
@ -4,7 +4,6 @@ from common.drf.serializers import BulkModelSerializer
|
|||||||
from orgs.utils import current_org
|
from orgs.utils import current_org
|
||||||
from ..models import LoginACL
|
from ..models import LoginACL
|
||||||
from ..utils import is_ip_address, is_ip_network, is_ip_segment
|
from ..utils import is_ip_address, is_ip_network, is_ip_segment
|
||||||
from .. import const
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['LoginACLSerializer', ]
|
__all__ = ['LoginACLSerializer', ]
|
||||||
@ -21,8 +20,14 @@ def ip_group_child_validator(ip_group_child):
|
|||||||
|
|
||||||
|
|
||||||
class LoginACLSerializer(BulkModelSerializer):
|
class LoginACLSerializer(BulkModelSerializer):
|
||||||
|
ip_group_help_text = _(
|
||||||
|
'Format for comma-delimited string, with * indicating a match all. '
|
||||||
|
'Such as: '
|
||||||
|
'192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 '
|
||||||
|
)
|
||||||
|
|
||||||
ip_group = serializers.ListField(
|
ip_group = serializers.ListField(
|
||||||
default=['*'], label=_('IP'), help_text=const.ip_group_help_text,
|
default=['*'], label=_('IP'), help_text=ip_group_help_text,
|
||||||
child=serializers.CharField(max_length=1024, validators=[ip_group_child_validator])
|
child=serializers.CharField(max_length=1024, validators=[ip_group_child_validator])
|
||||||
)
|
)
|
||||||
user_display = serializers.ReadOnlyField(source='user.name', label=_('User'))
|
user_display = serializers.ReadOnlyField(source='user.name', label=_('User'))
|
||||||
|
@ -1,45 +1,59 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
||||||
from assets.models import SystemUser
|
from assets.models import SystemUser
|
||||||
from acls import models
|
from acls import models
|
||||||
from orgs.models import Organization
|
from orgs.models import Organization
|
||||||
from .. import const
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['LoginAssetACLSerializer']
|
__all__ = ['LoginAssetACLSerializer']
|
||||||
|
|
||||||
|
|
||||||
|
common_help_text = _('Format for comma-delimited string, with * indicating a match all. ')
|
||||||
|
|
||||||
|
|
||||||
class LoginAssetACLUsersSerializer(serializers.Serializer):
|
class LoginAssetACLUsersSerializer(serializers.Serializer):
|
||||||
username_group = serializers.ListField(
|
username_group = serializers.ListField(
|
||||||
default=['*'], child=serializers.CharField(max_length=128), label=_('Username'),
|
default=['*'], child=serializers.CharField(max_length=128), label=_('Username'),
|
||||||
help_text=const.common_help_text
|
help_text=common_help_text
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class LoginAssetACLAssestsSerializer(serializers.Serializer):
|
class LoginAssetACLAssestsSerializer(serializers.Serializer):
|
||||||
|
ip_group_help_text = _(
|
||||||
|
'Format for comma-delimited string, with * indicating a match all. '
|
||||||
|
'Such as: '
|
||||||
|
'192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 '
|
||||||
|
'(Domain name support)'
|
||||||
|
)
|
||||||
|
|
||||||
ip_group = serializers.ListField(
|
ip_group = serializers.ListField(
|
||||||
default=['*'], child=serializers.CharField(max_length=1024), label=_('IP'),
|
default=['*'], child=serializers.CharField(max_length=1024), label=_('IP'),
|
||||||
help_text=const.ip_group_help_text + _('(Domain name support)')
|
help_text=ip_group_help_text
|
||||||
)
|
)
|
||||||
hostname_group = serializers.ListField(
|
hostname_group = serializers.ListField(
|
||||||
default=['*'], child=serializers.CharField(max_length=128), label=_('Hostname'),
|
default=['*'], child=serializers.CharField(max_length=128), label=_('Hostname'),
|
||||||
help_text=const.common_help_text
|
help_text=common_help_text
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class LoginAssetACLSystemUsersSerializer(serializers.Serializer):
|
class LoginAssetACLSystemUsersSerializer(serializers.Serializer):
|
||||||
|
protocol_group_help_text = _(
|
||||||
|
'Format for comma-delimited string, with * indicating a match all. '
|
||||||
|
'Protocol options: {}'
|
||||||
|
)
|
||||||
|
|
||||||
name_group = serializers.ListField(
|
name_group = serializers.ListField(
|
||||||
default=['*'], child=serializers.CharField(max_length=128), label=_('Name'),
|
default=['*'], child=serializers.CharField(max_length=128), label=_('Name'),
|
||||||
help_text=const.common_help_text
|
help_text=common_help_text
|
||||||
)
|
)
|
||||||
username_group = serializers.ListField(
|
username_group = serializers.ListField(
|
||||||
default=['*'], child=serializers.CharField(max_length=128), label=_('Username'),
|
default=['*'], child=serializers.CharField(max_length=128), label=_('Username'),
|
||||||
help_text=const.common_help_text
|
help_text=common_help_text
|
||||||
)
|
)
|
||||||
protocol_group = serializers.ListField(
|
protocol_group = serializers.ListField(
|
||||||
default=['*'], child=serializers.CharField(max_length=16), label=_('Protocol'),
|
default=['*'], child=serializers.CharField(max_length=16), label=_('Protocol'),
|
||||||
help_text=const.common_help_text + _('Protocol options: {}').format(
|
help_text=protocol_group_help_text.format(
|
||||||
', '.join(SystemUser.ASSET_CATEGORY_PROTOCOLS)
|
', '.join(SystemUser.ASSET_CATEGORY_PROTOCOLS)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -44,8 +44,8 @@ class ApplicationSerializerMixin(serializers.Serializer):
|
|||||||
|
|
||||||
|
|
||||||
class ApplicationSerializer(ApplicationSerializerMixin, BulkOrgResourceModelSerializer):
|
class ApplicationSerializer(ApplicationSerializerMixin, BulkOrgResourceModelSerializer):
|
||||||
category_display = serializers.ReadOnlyField(source='get_category_display', label=_('Category'))
|
category_display = serializers.ReadOnlyField(source='get_category_display', label=_('Category(Display)'))
|
||||||
type_display = serializers.ReadOnlyField(source='get_type_display', label=_('Type'))
|
type_display = serializers.ReadOnlyField(source='get_type_display', label=_('Type(Dispaly)'))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Application
|
model = models.Application
|
||||||
|
18
apps/audits/migrations/0012_auto_20210414_1443.py
Normal file
18
apps/audits/migrations/0012_auto_20210414_1443.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.1 on 2021-04-14 06:43
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('audits', '0011_userloginlog_backend'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='userloginlog',
|
||||||
|
name='type',
|
||||||
|
field=models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2, verbose_name='Login type'),
|
||||||
|
),
|
||||||
|
]
|
@ -79,6 +79,7 @@ class UserLoginLog(models.Model):
|
|||||||
LOGIN_TYPE_CHOICE = (
|
LOGIN_TYPE_CHOICE = (
|
||||||
('W', 'Web'),
|
('W', 'Web'),
|
||||||
('T', 'Terminal'),
|
('T', 'Terminal'),
|
||||||
|
('U', 'Unknown'),
|
||||||
)
|
)
|
||||||
|
|
||||||
MFA_DISABLED = 0
|
MFA_DISABLED = 0
|
||||||
|
@ -146,7 +146,7 @@ def generate_data(username, request):
|
|||||||
user_agent = request.META.get('HTTP_USER_AGENT', '')
|
user_agent = request.META.get('HTTP_USER_AGENT', '')
|
||||||
login_ip = get_request_ip(request) or '0.0.0.0'
|
login_ip = get_request_ip(request) or '0.0.0.0'
|
||||||
if isinstance(request, Request):
|
if isinstance(request, Request):
|
||||||
login_type = request.META.get('HTTP_X_JMS_LOGIN_TYPE', '')
|
login_type = request.META.get('HTTP_X_JMS_LOGIN_TYPE', 'U')
|
||||||
else:
|
else:
|
||||||
login_type = 'W'
|
login_type = 'W'
|
||||||
|
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -149,10 +149,8 @@ class CommandViewSet(viewsets.ModelViewSet):
|
|||||||
serializer = self.get_serializer(page, many=True)
|
serializer = self.get_serializer(page, many=True)
|
||||||
return self.get_paginated_response(serializer.data)
|
return self.get_paginated_response(serializer.data)
|
||||||
|
|
||||||
query_all = self.request.query_params.get('all', False)
|
# 适配像 ES 这种没有指定分页只返回少量数据的情况
|
||||||
if is_true(query_all):
|
queryset = queryset[:]
|
||||||
# 适配像 ES 这种没有指定分页只返回少量数据的情况
|
|
||||||
queryset = queryset[:]
|
|
||||||
|
|
||||||
serializer = self.get_serializer(queryset, many=True)
|
serializer = self.get_serializer(queryset, many=True)
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
@ -32,7 +32,7 @@ class StatusSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class TerminalSerializer(BulkModelSerializer):
|
class TerminalSerializer(BulkModelSerializer):
|
||||||
session_online = serializers.SerializerMethodField()
|
session_online = serializers.ReadOnlyField(source='get_online_session_count')
|
||||||
is_alive = serializers.BooleanField(read_only=True)
|
is_alive = serializers.BooleanField(read_only=True)
|
||||||
status = serializers.CharField(read_only=True, source='latest_status')
|
status = serializers.CharField(read_only=True, source='latest_status')
|
||||||
status_display = serializers.CharField(read_only=True, source='latest_status_display')
|
status_display = serializers.CharField(read_only=True, source='latest_status_display')
|
||||||
@ -73,10 +73,6 @@ class TerminalSerializer(BulkModelSerializer):
|
|||||||
else:
|
else:
|
||||||
raise serializers.ValidationError(_('Not found'))
|
raise serializers.ValidationError(_('Not found'))
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_session_online(obj):
|
|
||||||
return Session.objects.filter(terminal=obj, is_finished=False).count()
|
|
||||||
|
|
||||||
|
|
||||||
class TaskSerializer(BulkModelSerializer):
|
class TaskSerializer(BulkModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
Loading…
Reference in New Issue
Block a user