mirror of https://github.com/jumpserver/jumpserver
parent
8a1a7d9e13
commit
73c2155864
|
@ -22,18 +22,14 @@ class ApplyAssetSerializer(BaseApplyAssetSerializer, TicketApplySerializer):
|
||||||
|
|
||||||
class Meta(TicketApplySerializer.Meta):
|
class Meta(TicketApplySerializer.Meta):
|
||||||
model = ApplyAssetTicket
|
model = ApplyAssetTicket
|
||||||
fields_mini = ['id', 'title']
|
|
||||||
writeable_fields = [
|
writeable_fields = [
|
||||||
'id', 'title', 'apply_nodes', 'apply_assets',
|
'apply_nodes', 'apply_assets', 'apply_accounts',
|
||||||
'apply_accounts', 'apply_actions', 'org_id', 'comment',
|
'apply_actions', 'apply_date_start', 'apply_date_expired'
|
||||||
'apply_date_start', 'apply_date_expired'
|
|
||||||
]
|
]
|
||||||
fields = TicketApplySerializer.Meta.fields + writeable_fields + ['apply_permission_name', ]
|
read_only_fields = TicketApplySerializer.Meta.read_only_fields + ['apply_permission_name', ]
|
||||||
read_only_fields = list(set(fields) - set(writeable_fields))
|
fields = TicketApplySerializer.Meta.fields_small + writeable_fields + read_only_fields
|
||||||
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'apply_nodes': {'required': False},
|
|
||||||
'apply_assets': {'required': False},
|
|
||||||
'apply_accounts': {'required': False},
|
'apply_accounts': {'required': False},
|
||||||
}
|
}
|
||||||
extra_kwargs.update(ticket_extra_kwargs)
|
extra_kwargs.update(ticket_extra_kwargs)
|
||||||
|
|
|
@ -75,10 +75,11 @@ class BaseApplyAssetSerializer(serializers.Serializer):
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
instance = super().create(validated_data)
|
instance = super().create(validated_data)
|
||||||
name = _('Created by ticket ({}-{})').format(instance.title, str(instance.id)[:4])
|
name = _('Created by ticket ({}-{})').format(instance.title, str(instance.id)[:4])
|
||||||
with tmp_to_org(instance.org_id):
|
org_id = instance.org_id
|
||||||
|
with tmp_to_org(org_id):
|
||||||
if not self.permission_model.objects.filter(name=name).exists():
|
if not self.permission_model.objects.filter(name=name).exists():
|
||||||
instance.apply_permission_name = name
|
instance.apply_permission_name = name
|
||||||
instance.save()
|
instance.save(update_fields=['apply_permission_name'])
|
||||||
return instance
|
return instance
|
||||||
raise serializers.ValidationError(_('Permission named `{}` already exists'.format(name)))
|
raise serializers.ValidationError(_('Permission named `{}` already exists'.format(name)))
|
||||||
|
|
||||||
|
|
|
@ -22,13 +22,12 @@ class TicketSerializer(OrgResourceModelSerializerMixin):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Ticket
|
model = Ticket
|
||||||
fields_mini = ['id', 'title']
|
fields_mini = ['id', 'title']
|
||||||
fields_small = fields_mini + [
|
fields_small = fields_mini + ['org_id', 'comment']
|
||||||
'type', 'status', 'state', 'approval_step', 'comment',
|
read_only_fields = [
|
||||||
'date_created', 'date_updated', 'org_id', 'rel_snapshot',
|
'serial_num', 'process_map', 'approval_step', 'type', 'state', 'applicant',
|
||||||
'process_map', 'org_name', 'serial_num'
|
'status', 'date_created', 'date_updated', 'org_name', 'rel_snapshot'
|
||||||
]
|
]
|
||||||
fields_fk = ['applicant', ]
|
fields = fields_small + read_only_fields
|
||||||
fields = fields_small + fields_fk
|
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'type': {'required': True}
|
'type': {'required': True}
|
||||||
}
|
}
|
||||||
|
@ -72,8 +71,6 @@ class TicketApplySerializer(TicketSerializer):
|
||||||
if self.instance:
|
if self.instance:
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
print("Attrs: ", attrs)
|
|
||||||
|
|
||||||
ticket_type = attrs.get('type')
|
ticket_type = attrs.get('type')
|
||||||
org_id = attrs.get('org_id')
|
org_id = attrs.get('org_id')
|
||||||
flow = TicketFlow.get_org_related_flows(org_id=org_id) \
|
flow = TicketFlow.get_org_related_flows(org_id=org_id) \
|
||||||
|
@ -81,7 +78,7 @@ class TicketApplySerializer(TicketSerializer):
|
||||||
|
|
||||||
if flow:
|
if flow:
|
||||||
attrs['flow'] = flow
|
attrs['flow'] = flow
|
||||||
|
return attrs
|
||||||
else:
|
else:
|
||||||
error = _('The ticket flow `{}` does not exist'.format(ticket_type))
|
error = _('The ticket flow `{}` does not exist'.format(ticket_type))
|
||||||
raise serializers.ValidationError(error)
|
raise serializers.ValidationError(error)
|
||||||
return attrs
|
|
||||||
|
|
Loading…
Reference in New Issue