mirror of https://github.com/jumpserver/jumpserver
feat(ticket): 申请资产工单添加`actions`字段
parent
a14f121fad
commit
1a9d9e4145
|
@ -13,6 +13,7 @@ from common.utils.django import get_object_or_none
|
||||||
from common.utils.timezone import dt_parser
|
from common.utils.timezone import dt_parser
|
||||||
from common.drf.serializers import EmptySerializer
|
from common.drf.serializers import EmptySerializer
|
||||||
from perms.models.asset_permission import AssetPermission, Asset
|
from perms.models.asset_permission import AssetPermission, Asset
|
||||||
|
from perms.models import Action
|
||||||
from assets.models.user import SystemUser
|
from assets.models.user import SystemUser
|
||||||
from ..exceptions import (
|
from ..exceptions import (
|
||||||
ConfirmedAssetsChanged, ConfirmedSystemUserChanged,
|
ConfirmedAssetsChanged, ConfirmedSystemUserChanged,
|
||||||
|
@ -105,12 +106,14 @@ class RequestAssetPermTicketViewSet(JMSModelViewSet):
|
||||||
def _create_asset_permission(self, instance: Ticket, assets, system_user):
|
def _create_asset_permission(self, instance: Ticket, assets, system_user):
|
||||||
meta = instance.meta
|
meta = instance.meta
|
||||||
request = self.request
|
request = self.request
|
||||||
|
actions = meta.get('actions', Action.CONNECT)
|
||||||
|
|
||||||
ap_kwargs = {
|
ap_kwargs = {
|
||||||
'name': _('From request ticket: {} {}').format(instance.user_display, instance.id),
|
'name': _('From request ticket: {} {}').format(instance.user_display, instance.id),
|
||||||
'created_by': self.request.user.username,
|
'created_by': self.request.user.username,
|
||||||
'comment': _('{} request assets, approved by {}').format(instance.user_display,
|
'comment': _('{} request assets, approved by {}').format(instance.user_display,
|
||||||
instance.assignees_display)
|
instance.assignees_display),
|
||||||
|
'actions': actions,
|
||||||
}
|
}
|
||||||
date_start = dt_parser(meta.get('date_start'))
|
date_start = dt_parser(meta.get('date_start'))
|
||||||
date_expired = dt_parser(meta.get('date_expired'))
|
date_expired = dt_parser(meta.get('date_expired'))
|
||||||
|
@ -118,7 +121,6 @@ class RequestAssetPermTicketViewSet(JMSModelViewSet):
|
||||||
ap_kwargs['date_start'] = date_start
|
ap_kwargs['date_start'] = date_start
|
||||||
if date_expired:
|
if date_expired:
|
||||||
ap_kwargs['date_expired'] = date_expired
|
ap_kwargs['date_expired'] = date_expired
|
||||||
|
|
||||||
instance.perform_action(instance.ACTION.APPROVE,
|
instance.perform_action(instance.ACTION.APPROVE,
|
||||||
request.user,
|
request.user,
|
||||||
self._get_extra_comment(instance))
|
self._get_extra_comment(instance))
|
||||||
|
|
|
@ -11,10 +11,14 @@ from orgs.utils import tmp_to_root_org
|
||||||
from orgs.models import Organization, ROLE as ORG_ROLE
|
from orgs.models import Organization, ROLE as ORG_ROLE
|
||||||
from assets.models.asset import Asset
|
from assets.models.asset import Asset
|
||||||
from users.models.user import User
|
from users.models.user import User
|
||||||
|
from perms.serializers import ActionsField
|
||||||
|
from perms.models import Action
|
||||||
from ..models import Ticket
|
from ..models import Ticket
|
||||||
|
|
||||||
|
|
||||||
class RequestAssetPermTicketSerializer(serializers.ModelSerializer):
|
class RequestAssetPermTicketSerializer(serializers.ModelSerializer):
|
||||||
|
actions = ActionsField(source='meta.actions', choices=Action.DB_CHOICES,
|
||||||
|
default=Action.CONNECT)
|
||||||
ips = serializers.ListField(child=serializers.IPAddressField(), source='meta.ips',
|
ips = serializers.ListField(child=serializers.IPAddressField(), source='meta.ips',
|
||||||
default=list, label=_('IP group'))
|
default=list, label=_('IP group'))
|
||||||
hostname = serializers.CharField(max_length=256, source='meta.hostname', default='',
|
hostname = serializers.CharField(max_length=256, source='meta.hostname', default='',
|
||||||
|
@ -42,7 +46,7 @@ class RequestAssetPermTicketSerializer(serializers.ModelSerializer):
|
||||||
'status', 'action', 'date_created', 'date_updated', 'system_user_waitlist_url',
|
'status', 'action', 'date_created', 'date_updated', 'system_user_waitlist_url',
|
||||||
'type', 'type_display', 'action_display', 'ips', 'confirmed_assets',
|
'type', 'type_display', 'action_display', 'ips', 'confirmed_assets',
|
||||||
'date_start', 'date_expired', 'confirmed_system_user', 'hostname',
|
'date_start', 'date_expired', 'confirmed_system_user', 'hostname',
|
||||||
'assets_waitlist_url', 'system_user', 'org_id'
|
'assets_waitlist_url', 'system_user', 'org_id', 'actions'
|
||||||
]
|
]
|
||||||
m2m_fields = [
|
m2m_fields = [
|
||||||
'user', 'user_display', 'assignees', 'assignees_display',
|
'user', 'user_display', 'assignees', 'assignees_display',
|
||||||
|
|
Loading…
Reference in New Issue