mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-06-27 15:27:11 +00:00
perf: 重构工单处理流程 (7)
This commit is contained in:
parent
64257823c5
commit
83d12d02fb
@ -4,7 +4,6 @@ from applications.models import Application
|
|||||||
from applications.const import ApplicationCategoryChoices, ApplicationTypeChoices
|
from applications.const import ApplicationCategoryChoices, ApplicationTypeChoices
|
||||||
from assets.models import SystemUser
|
from assets.models import SystemUser
|
||||||
from perms.models import ApplicationPermission
|
from perms.models import ApplicationPermission
|
||||||
from tickets.utils import convert_model_data_field_name_to_verbose_name
|
|
||||||
from .base import BaseHandler
|
from .base import BaseHandler
|
||||||
|
|
||||||
|
|
||||||
@ -26,22 +25,15 @@ class Handler(BaseHandler):
|
|||||||
return meta_display
|
return meta_display
|
||||||
|
|
||||||
def _construct_meta_display_of_approve(self):
|
def _construct_meta_display_of_approve(self):
|
||||||
meta_display_fields = ['approve_applications_snapshot', 'approve_system_users_snapshot']
|
meta_display_fields = ['approve_applications_display', 'approve_system_users_display']
|
||||||
approve_applications_id = self.ticket.meta.get('approve_applications', [])
|
approve_applications_id = self.ticket.meta.get('approve_applications', [])
|
||||||
approve_system_users_id = self.ticket.meta.get('approve_system_users', [])
|
approve_system_users_id = self.ticket.meta.get('approve_system_users', [])
|
||||||
with tmp_to_org(self.ticket.org_id):
|
with tmp_to_org(self.ticket.org_id):
|
||||||
approve_applications_snapshot = list(
|
approve_applications = Application.objects.filter(id__in=approve_applications_id)
|
||||||
Application.objects.filter(id__in=approve_applications_id).values(
|
system_users = SystemUser.objects.filter(id__in=approve_system_users_id)
|
||||||
'name', 'category', 'type'
|
approve_applications_display = [str(application) for application in approve_applications]
|
||||||
)
|
approve_system_users_display = [str(system_user) for system_user in system_users]
|
||||||
)
|
meta_display_values = [approve_applications_display, approve_system_users_display]
|
||||||
approve_system_users_snapshot = list(
|
|
||||||
SystemUser.objects.filter(id__in=approve_system_users_id).values(
|
|
||||||
'name', 'username', 'username_same_with_user', 'protocol',
|
|
||||||
'auto_push', 'sudo', 'home', 'sftp_root'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
meta_display_values = [approve_applications_snapshot, approve_system_users_snapshot]
|
|
||||||
meta_display = dict(zip(meta_display_fields, meta_display_values))
|
meta_display = dict(zip(meta_display_fields, meta_display_values))
|
||||||
return meta_display
|
return meta_display
|
||||||
|
|
||||||
@ -71,14 +63,8 @@ class Handler(BaseHandler):
|
|||||||
|
|
||||||
def _construct_meta_body_of_approve(self):
|
def _construct_meta_body_of_approve(self):
|
||||||
# 审批信息
|
# 审批信息
|
||||||
approve_applications_snapshot = self.ticket.meta.get('approve_applications_snapshot', [])
|
approve_applications_display = self.ticket.meta.get('approve_applications_display', [])
|
||||||
approve_applications_snapshot_display = convert_model_data_field_name_to_verbose_name(
|
approve_system_users_display = self.ticket.meta.get('approve_system_users_display', [])
|
||||||
model=Application, data=approve_applications_snapshot
|
|
||||||
)
|
|
||||||
approve_system_users_snapshot = self.ticket.meta.get('approve_system_users_snapshot', [])
|
|
||||||
approve_system_users_snapshot_display = convert_model_data_field_name_to_verbose_name(
|
|
||||||
model=SystemUser, data=approve_system_users_snapshot
|
|
||||||
)
|
|
||||||
approve_date_start = self.ticket.meta.get('approve_date_start')
|
approve_date_start = self.ticket.meta.get('approve_date_start')
|
||||||
approve_date_expired = self.ticket.meta.get('approve_date_expired')
|
approve_date_expired = self.ticket.meta.get('approve_date_expired')
|
||||||
approved_body = '''{}: {},
|
approved_body = '''{}: {},
|
||||||
@ -86,8 +72,8 @@ class Handler(BaseHandler):
|
|||||||
{}: {},
|
{}: {},
|
||||||
{}: {},
|
{}: {},
|
||||||
'''.format(
|
'''.format(
|
||||||
__('Approved applications'), approve_applications_snapshot_display,
|
__('Approved applications'), approve_applications_display,
|
||||||
__('Approved system users'), approve_system_users_snapshot_display,
|
__('Approved system users'), approve_system_users_display,
|
||||||
__('Approved date start'), approve_date_start,
|
__('Approved date start'), approve_date_start,
|
||||||
__('Approved date expired'), approve_date_expired
|
__('Approved date expired'), approve_date_expired
|
||||||
)
|
)
|
||||||
|
@ -4,7 +4,6 @@ from django.utils.translation import ugettext as __
|
|||||||
from perms.models import AssetPermission, Action
|
from perms.models import AssetPermission, Action
|
||||||
from assets.models import Asset, SystemUser
|
from assets.models import Asset, SystemUser
|
||||||
from orgs.utils import tmp_to_org, tmp_to_root_org
|
from orgs.utils import tmp_to_org, tmp_to_root_org
|
||||||
from tickets.utils import convert_model_data_field_name_to_verbose_name
|
|
||||||
|
|
||||||
|
|
||||||
class Handler(BaseHandler):
|
class Handler(BaseHandler):
|
||||||
@ -24,26 +23,19 @@ class Handler(BaseHandler):
|
|||||||
|
|
||||||
def _construct_meta_display_of_approve(self):
|
def _construct_meta_display_of_approve(self):
|
||||||
meta_display_fields = [
|
meta_display_fields = [
|
||||||
'approve_actions_display', 'approve_assets_snapshot', 'approve_system_users_snapshot'
|
'approve_actions_display', 'approve_assets_display', 'approve_system_users_display'
|
||||||
]
|
]
|
||||||
approve_actions = self.ticket.meta.get('approve_actions', Action.NONE)
|
approve_actions = self.ticket.meta.get('approve_actions', Action.NONE)
|
||||||
approve_actions_display = Action.value_to_choices_display(approve_actions)
|
approve_actions_display = Action.value_to_choices_display(approve_actions)
|
||||||
approve_assets_id = self.ticket.meta.get('approve_assets', [])
|
approve_assets_id = self.ticket.meta.get('approve_assets', [])
|
||||||
approve_system_users_id = self.ticket.meta.get('approve_system_users', [])
|
approve_system_users_id = self.ticket.meta.get('approve_system_users', [])
|
||||||
with tmp_to_org(self.ticket.org_id):
|
with tmp_to_org(self.ticket.org_id):
|
||||||
approve_assets_snapshot = list(
|
assets = Asset.objects.filter(id__in=approve_assets_id)
|
||||||
Asset.objects.filter(id__in=approve_assets_id).values(
|
system_users = SystemUser.objects.filter(id__in=approve_system_users_id)
|
||||||
'hostname', 'ip', 'protocols', 'platform__name', 'public_ip'
|
approve_assets_display = [str(asset) for asset in assets]
|
||||||
)
|
approve_system_users_display = [str(system_user) for system_user in system_users]
|
||||||
)
|
|
||||||
approve_system_users_snapshot = list(
|
|
||||||
SystemUser.objects.filter(id__in=approve_system_users_id).values(
|
|
||||||
'name', 'username', 'username_same_with_user', 'protocol',
|
|
||||||
'auto_push', 'sudo', 'home', 'sftp_root'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
meta_display_values = [
|
meta_display_values = [
|
||||||
approve_actions_display, approve_assets_snapshot, approve_system_users_snapshot
|
approve_actions_display, approve_assets_display, approve_system_users_display
|
||||||
]
|
]
|
||||||
meta_display = dict(zip(meta_display_fields, meta_display_values))
|
meta_display = dict(zip(meta_display_fields, meta_display_values))
|
||||||
return meta_display
|
return meta_display
|
||||||
@ -72,14 +64,8 @@ class Handler(BaseHandler):
|
|||||||
return applied_body
|
return applied_body
|
||||||
|
|
||||||
def _construct_meta_body_of_approve(self):
|
def _construct_meta_body_of_approve(self):
|
||||||
approve_assets_snapshot = self.ticket.meta.get('approve_assets_snapshot', [])
|
approve_assets_display = self.ticket.meta.get('approve_assets_display', [])
|
||||||
approve_assets_snapshot_display = convert_model_data_field_name_to_verbose_name(
|
approve_system_users_display = self.ticket.meta.get('approve_system_users_display', [])
|
||||||
model=Asset, data=approve_assets_snapshot
|
|
||||||
)
|
|
||||||
approve_system_users_snapshot = self.ticket.meta.get('approve_system_users_snapshot', [])
|
|
||||||
approve_system_users_snapshot_display = convert_model_data_field_name_to_verbose_name(
|
|
||||||
model=SystemUser, data=approve_system_users_snapshot
|
|
||||||
)
|
|
||||||
approve_actions_display = self.ticket.meta.get('approve_actions_display', [])
|
approve_actions_display = self.ticket.meta.get('approve_actions_display', [])
|
||||||
approve_date_start = self.ticket.meta.get('approve_date_start')
|
approve_date_start = self.ticket.meta.get('approve_date_start')
|
||||||
approve_date_expired = self.ticket.meta.get('approve_date_expired')
|
approve_date_expired = self.ticket.meta.get('approve_date_expired')
|
||||||
@ -89,8 +75,8 @@ class Handler(BaseHandler):
|
|||||||
{}: {},
|
{}: {},
|
||||||
{}: {}
|
{}: {}
|
||||||
'''.format(
|
'''.format(
|
||||||
__('Approved assets'), approve_assets_snapshot_display,
|
__('Approved assets'), approve_assets_display,
|
||||||
__('Approved system users'), approve_system_users_snapshot_display,
|
__('Approved system users'), approve_system_users_display,
|
||||||
__('Approved actions'), ', '.join(approve_actions_display),
|
__('Approved actions'), ', '.join(approve_actions_display),
|
||||||
__('Approved date start'), approve_date_start,
|
__('Approved date start'), approve_date_start,
|
||||||
__('Approved date expired'), approve_date_expired,
|
__('Approved date expired'), approve_date_expired,
|
||||||
|
@ -29,9 +29,9 @@ def migrate_field_meta(tp, old_meta):
|
|||||||
'apply_date_expired': old_meta.get('date_expired'),
|
'apply_date_expired': old_meta.get('date_expired'),
|
||||||
|
|
||||||
'approve_assets': old_meta.get('confirmed_assets', []),
|
'approve_assets': old_meta.get('confirmed_assets', []),
|
||||||
'approve_assets_snapshot': [],
|
'approve_assets_display': [],
|
||||||
'approve_system_users': old_meta.get('confirmed_system_users', []),
|
'approve_system_users': old_meta.get('confirmed_system_users', []),
|
||||||
'approve_system_users_snapshot': [],
|
'approve_system_users_display': [],
|
||||||
'approve_actions': old_meta.get('actions'),
|
'approve_actions': old_meta.get('actions'),
|
||||||
'approve_actions_display': [],
|
'approve_actions_display': [],
|
||||||
'approve_date_start': old_meta.get('date_start'),
|
'approve_date_start': old_meta.get('date_start'),
|
||||||
|
@ -51,7 +51,7 @@ class ApproveSerializer(serializers.Serializer):
|
|||||||
required=True, child=serializers.UUIDField(), label=_('Approve applications'),
|
required=True, child=serializers.UUIDField(), label=_('Approve applications'),
|
||||||
allow_null=True
|
allow_null=True
|
||||||
)
|
)
|
||||||
approve_applications_snapshot = serializers.ListField(
|
approve_applications_display = serializers.ListField(
|
||||||
required=False, read_only=True, child=serializers.CharField(),
|
required=False, read_only=True, child=serializers.CharField(),
|
||||||
label=_('Approve applications display'), allow_null=True,
|
label=_('Approve applications display'), allow_null=True,
|
||||||
default=list
|
default=list
|
||||||
@ -60,7 +60,7 @@ class ApproveSerializer(serializers.Serializer):
|
|||||||
required=True, child=serializers.UUIDField(), label=_('Approve system users'),
|
required=True, child=serializers.UUIDField(), label=_('Approve system users'),
|
||||||
allow_null=True
|
allow_null=True
|
||||||
)
|
)
|
||||||
approve_system_users_snapshot = serializers.ListField(
|
approve_system_users_display = serializers.ListField(
|
||||||
required=False, read_only=True, child=serializers.CharField(),
|
required=False, read_only=True, child=serializers.CharField(),
|
||||||
label=_('Approve system user display'), allow_null=True,
|
label=_('Approve system user display'), allow_null=True,
|
||||||
default=list
|
default=list
|
||||||
|
@ -47,8 +47,8 @@ class ApproveSerializer(serializers.Serializer):
|
|||||||
approve_assets = serializers.ListField(
|
approve_assets = serializers.ListField(
|
||||||
required=True, allow_null=True, child=serializers.UUIDField(), label=_('Approve assets')
|
required=True, allow_null=True, child=serializers.UUIDField(), label=_('Approve assets')
|
||||||
)
|
)
|
||||||
approve_assets_snapshot = serializers.ListField(
|
approve_assets_display = serializers.ListField(
|
||||||
required=False, read_only=True, child=serializers.DictField(),
|
required=False, read_only=True, child=serializers.CharField(),
|
||||||
label=_('Approve assets display'), allow_null=True,
|
label=_('Approve assets display'), allow_null=True,
|
||||||
default=list,
|
default=list,
|
||||||
)
|
)
|
||||||
@ -56,8 +56,8 @@ class ApproveSerializer(serializers.Serializer):
|
|||||||
required=True, allow_null=True, child=serializers.UUIDField(),
|
required=True, allow_null=True, child=serializers.UUIDField(),
|
||||||
label=_('Approve system users')
|
label=_('Approve system users')
|
||||||
)
|
)
|
||||||
approve_system_users_snapshot = serializers.ListField(
|
approve_system_users_display = serializers.ListField(
|
||||||
required=False, read_only=True, child=serializers.DictField(),
|
required=False, read_only=True, child=serializers.CharField(),
|
||||||
label=_('Approve assets display'), allow_null=True,
|
label=_('Approve assets display'), allow_null=True,
|
||||||
default=list,
|
default=list,
|
||||||
)
|
)
|
||||||
|
@ -11,25 +11,6 @@ from . import const
|
|||||||
logger = get_logger(__file__)
|
logger = get_logger(__file__)
|
||||||
|
|
||||||
|
|
||||||
def get_model_field_verbose_name(model, field_name):
|
|
||||||
field_name_field_verbose_name_mapping = {
|
|
||||||
field.name: field.verbose_name for field in model._meta.fields
|
|
||||||
}
|
|
||||||
field_name = field_name.split('__', 1)[0]
|
|
||||||
field_verbose_name = field_name_field_verbose_name_mapping.get(field_name, field_name)
|
|
||||||
return field_verbose_name
|
|
||||||
|
|
||||||
|
|
||||||
def convert_model_data_field_name_to_verbose_name(model, data):
|
|
||||||
if isinstance(data, dict):
|
|
||||||
data = [data]
|
|
||||||
converted_data = [
|
|
||||||
{get_model_field_verbose_name(model, name): value for name, value in d.items()}
|
|
||||||
for d in data
|
|
||||||
]
|
|
||||||
return converted_data
|
|
||||||
|
|
||||||
|
|
||||||
def send_ticket_applied_mail_to_assignees(ticket, assignees):
|
def send_ticket_applied_mail_to_assignees(ticket, assignees):
|
||||||
if not assignees:
|
if not assignees:
|
||||||
logger.debug("Not found assignees, ticket: {}({}), assignees: {}".format(
|
logger.debug("Not found assignees, ticket: {}({}), assignees: {}".format(
|
||||||
|
Loading…
Reference in New Issue
Block a user