mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-10-21 15:58:52 +00:00
* reactor: 修改工单Model,添加工单迁移文件 * reactor: 修改工单Model,添加工单迁移文件 * reactor: 重构工单模块 * reactor: 重构工单模块2 * reactor: 重构工单模块3 * reactor: 重构工单模块4 * reactor: 重构工单模块5 * reactor: 重构工单模块6 * reactor: 重构工单模块7 * reactor: 重构工单模块8 * reactor: 重构工单模块9 * reactor: 重构工单模块10 * reactor: 重构工单模块11 * reactor: 重构工单模块12 * reactor: 重构工单模块13 * reactor: 重构工单模块14 * reactor: 重构工单模块15 * reactor: 重构工单模块16 * reactor: 重构工单模块17 * reactor: 重构工单模块18 * reactor: 重构工单模块19 * reactor: 重构工单模块20 * reactor: 重构工单模块21 * reactor: 重构工单模块22 * reactor: 重构工单模块23 * reactor: 重构工单模块24 * reactor: 重构工单模块25 * reactor: 重构工单模块26 * reactor: 重构工单模块27 * reactor: 重构工单模块28 * reactor: 重构工单模块29 * reactor: 重构工单模块30 * reactor: 重构工单模块31 * reactor: 重构工单模块32 * reactor: 重构工单模块33 * reactor: 重构工单模块34 * reactor: 重构工单模块35 * reactor: 重构工单模块36 * reactor: 重构工单模块37 * reactor: 重构工单模块38 * reactor: 重构工单模块39
100 lines
4.4 KiB
Python
100 lines
4.4 KiB
Python
from django.utils.translation import ugettext as __
|
|
|
|
from perms.models import AssetPermission, Action
|
|
from assets.models import Asset, SystemUser
|
|
from orgs.utils import tmp_to_org, tmp_to_root_org
|
|
|
|
|
|
class ConstructBodyMixin:
|
|
def construct_apply_asset_applied_body(self):
|
|
apply_ip_group = self.meta['apply_ip_group']
|
|
apply_hostname_group = self.meta['apply_hostname_group']
|
|
apply_system_user_group = self.meta['apply_system_user_group']
|
|
apply_actions = self.meta['apply_actions']
|
|
apply_actions_display = Action.value_to_choices_display(apply_actions)
|
|
apply_actions_display = [str(action_display) for action_display in apply_actions_display]
|
|
apply_date_start = self.meta['apply_date_start']
|
|
apply_date_expired = self.meta['apply_date_expired']
|
|
applied_body = '''{}: {},
|
|
{}: {},
|
|
{}: {},
|
|
{}: {},
|
|
{}: {}
|
|
'''.format(
|
|
__('Applied IP group'), apply_ip_group,
|
|
__("Applied hostname group"), apply_hostname_group,
|
|
__("Applied system user group"), apply_system_user_group,
|
|
__("Applied actions"), apply_actions_display,
|
|
__('Applied date start'), apply_date_start,
|
|
__('Applied date expired'), apply_date_expired,
|
|
)
|
|
return applied_body
|
|
|
|
def construct_apply_asset_approved_body(self):
|
|
approve_assets_id = self.meta['approve_assets']
|
|
approve_system_users_id = self.meta['approve_system_users']
|
|
with tmp_to_org(self.org_id):
|
|
approve_assets = Asset.objects.filter(id__in=approve_assets_id)
|
|
approve_system_users = SystemUser.objects.filter(id__in=approve_system_users_id)
|
|
approve_assets_display = [str(asset) for asset in approve_assets]
|
|
approve_system_users_display = [str(system_user) for system_user in approve_system_users]
|
|
approve_actions = self.meta['approve_actions']
|
|
approve_actions_display = Action.value_to_choices_display(approve_actions)
|
|
approve_actions_display = [str(action_display) for action_display in approve_actions_display]
|
|
approve_date_start = self.meta['approve_date_start']
|
|
approve_date_expired = self.meta['approve_date_expired']
|
|
approved_body = '''{}: {},
|
|
{}: {},
|
|
{}: {},
|
|
{}: {},
|
|
{}: {}
|
|
'''.format(
|
|
__('Approved assets'), ', '.join(approve_assets_display),
|
|
__('Approved system users'), ', '.join(approve_system_users_display),
|
|
__('Approved actions'), ', '.join(approve_actions_display),
|
|
__('Approved date start'), approve_date_start,
|
|
__('Approved date expired'), approve_date_expired,
|
|
)
|
|
return approved_body
|
|
|
|
|
|
class CreatePermissionMixin:
|
|
def create_apply_asset_permission(self):
|
|
with tmp_to_root_org():
|
|
asset_permission = AssetPermission.objects.filter(id=self.id).first()
|
|
if asset_permission:
|
|
return asset_permission
|
|
|
|
approve_assets_id = self.meta['approve_assets']
|
|
approve_system_users_id = self.meta['approve_system_users']
|
|
approve_actions = self.meta['approve_actions']
|
|
approve_date_start = self.meta['approve_date_start']
|
|
approve_date_expired = self.meta['approve_date_expired']
|
|
permission_name = '{}({})'.format(
|
|
__('Created by ticket ({})'.format(self.title)), str(self.id)[:4]
|
|
)
|
|
permission_comment = __(
|
|
'Created by the ticket, '
|
|
'ticket title: {}, '
|
|
'ticket applicant: {}, '
|
|
'ticket processor: {}, '
|
|
'ticket ID: {}'
|
|
''.format(self.title, self.applicant_display, self.processor_display, str(self.id))
|
|
)
|
|
permission_data = {
|
|
'id': self.id,
|
|
'name': permission_name,
|
|
'comment': permission_comment,
|
|
'created_by': self.processor_display,
|
|
'actions': approve_actions,
|
|
'date_start': approve_date_start,
|
|
'date_expired': approve_date_expired,
|
|
}
|
|
with tmp_to_org(self.org_id):
|
|
asset_permission = AssetPermission.objects.create(**permission_data)
|
|
asset_permission.users.add(self.applicant)
|
|
asset_permission.assets.set(approve_assets_id)
|
|
asset_permission.system_users.set(approve_system_users_id)
|
|
|
|
return asset_permission
|