mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-29 21:51:31 +00:00
* perf: 重构 ticket * perf: 优化 tickets * perf: 暂存 * perf: 建立 ticket model * perf: 暂存一下 * perf: 修改 tickets * perf: 修改 import * perf: 修改model * perf: 暂存一波 * perf: 修改... * del process_map field * 工单重构 * 资产 应用对接前端 * perf: 修改 ticket * fix: bug * 修改迁移文件 * 添加其他api * 去掉process_map * perf: 优化去掉 signal * perf: 修改这里 * 修改一点 * perf: 修改工单 * perf: 修改状态 * perf: 修改工单流转 * step 状态切换 * perf: 修改 ticket open * perf: 修改流程 * perf: stash it * 改又改 * stash it * perf: stash * stash * migrate * perf migrate * 调整一下 * 修复bug * 修改一点 * 修改一点 * 优化一波 * perf: ticket migrations Co-authored-by: ibuler <ibuler@qq.com> Co-authored-by: feng626 <1304903146@qq.com>
64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
from django.utils.translation import ugettext as _
|
|
|
|
from orgs.utils import tmp_to_org, tmp_to_root_org
|
|
from perms.models import ApplicationPermission
|
|
from tickets.models import ApplyApplicationTicket
|
|
from .base import BaseHandler
|
|
|
|
|
|
class Handler(BaseHandler):
|
|
ticket: ApplyApplicationTicket
|
|
|
|
def _on_step_approved(self, step):
|
|
is_finished = super()._on_step_approved(step)
|
|
if is_finished:
|
|
self._create_application_permission()
|
|
|
|
# permission
|
|
def _create_application_permission(self):
|
|
with tmp_to_root_org():
|
|
application_permission = ApplicationPermission.objects.filter(id=self.ticket.id).first()
|
|
if application_permission:
|
|
return application_permission
|
|
|
|
apply_permission_name = self.ticket.apply_permission_name
|
|
apply_category = self.ticket.apply_category
|
|
apply_type = self.ticket.apply_type
|
|
apply_applications = self.ticket.apply_applications.all()
|
|
apply_system_users = self.ticket.apply_system_users.all()
|
|
apply_date_start = self.ticket.apply_date_start
|
|
apply_date_expired = self.ticket.apply_date_expired
|
|
permission_created_by = '{}:{}'.format(
|
|
str(self.ticket.__class__.__name__), str(self.ticket.id)
|
|
)
|
|
permission_comment = _(
|
|
'Created by the ticket, '
|
|
'ticket title: {}, '
|
|
'ticket applicant: {}, '
|
|
'ticket processor: {}, '
|
|
'ticket ID: {}'
|
|
).format(
|
|
self.ticket.title,
|
|
self.ticket.applicant,
|
|
','.join([i['processor_display'] for i in self.ticket.process_map]),
|
|
str(self.ticket.id)
|
|
)
|
|
permissions_data = {
|
|
'id': self.ticket.id,
|
|
'name': apply_permission_name,
|
|
'from_ticket': True,
|
|
'category': apply_category,
|
|
'type': apply_type,
|
|
'comment': str(permission_comment),
|
|
'created_by': permission_created_by,
|
|
'date_start': apply_date_start,
|
|
'date_expired': apply_date_expired,
|
|
}
|
|
with tmp_to_org(self.ticket.org_id):
|
|
application_permission = ApplicationPermission.objects.create(**permissions_data)
|
|
application_permission.users.add(self.ticket.applicant)
|
|
application_permission.applications.set(apply_applications)
|
|
application_permission.system_users.set(apply_system_users)
|
|
|
|
return application_permission
|