mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-23 20:39:26 +00:00
pref: 修改授权 api,去掉不用的
This commit is contained in:
@@ -3,31 +3,35 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
from orgs.models import Organization
|
||||
from common.drf.fields import LabeledChoiceField
|
||||
from orgs.mixins.serializers import OrgResourceModelSerializerMixin
|
||||
from orgs.models import Organization
|
||||
from tickets.const import TicketType, TicketStatus, TicketState
|
||||
from tickets.models import Ticket, TicketFlow
|
||||
from tickets.const import TicketType
|
||||
|
||||
__all__ = [
|
||||
'TicketDisplaySerializer', 'TicketApplySerializer', 'TicketListSerializer', 'TicketApproveSerializer'
|
||||
'TicketApplySerializer', 'TicketApproveSerializer', 'TicketSerializer',
|
||||
]
|
||||
|
||||
|
||||
class TicketSerializer(OrgResourceModelSerializerMixin):
|
||||
type_display = serializers.ReadOnlyField(source='get_type_display', label=_('Type display'))
|
||||
status_display = serializers.ReadOnlyField(source='get_status_display', label=_('Status display'))
|
||||
type = LabeledChoiceField(choices=TicketType.choices, read_only=True, label=_('Type'))
|
||||
status = LabeledChoiceField(choices=TicketStatus.choices, read_only=True, label=_('Status'))
|
||||
state = LabeledChoiceField(choices=TicketState.choices, read_only=True, label=_("State"))
|
||||
|
||||
class Meta:
|
||||
model = Ticket
|
||||
fields_mini = ['id', 'title']
|
||||
fields_small = fields_mini + [
|
||||
'type', 'type_display', 'status', 'status_display',
|
||||
'state', 'approval_step', 'rel_snapshot', 'comment',
|
||||
'type', 'status', 'state', 'approval_step', 'comment',
|
||||
'date_created', 'date_updated', 'org_id', 'rel_snapshot',
|
||||
'process_map', 'org_name', 'serial_num'
|
||||
]
|
||||
fields_fk = ['applicant', ]
|
||||
fields = fields_small + fields_fk
|
||||
extra_kwargs = {
|
||||
'type': {'required': True}
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
@@ -41,43 +45,20 @@ class TicketSerializer(OrgResourceModelSerializerMixin):
|
||||
choices.pop(TicketType.general, None)
|
||||
tp._choices = choices
|
||||
|
||||
|
||||
class TicketListSerializer(TicketSerializer):
|
||||
class Meta:
|
||||
model = Ticket
|
||||
fields = [
|
||||
'id', 'title', 'serial_num', 'type', 'type_display', 'status',
|
||||
'state', 'rel_snapshot', 'date_created', 'rel_snapshot'
|
||||
]
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class TicketDisplaySerializer(TicketSerializer):
|
||||
class Meta:
|
||||
model = Ticket
|
||||
fields = TicketSerializer.Meta.fields
|
||||
read_only_fields = fields
|
||||
@classmethod
|
||||
def setup_eager_loading(cls, queryset):
|
||||
queryset = queryset.prefetch_related('ticket_steps')
|
||||
return queryset
|
||||
|
||||
|
||||
class TicketApproveSerializer(TicketSerializer):
|
||||
class Meta:
|
||||
model = Ticket
|
||||
class Meta(TicketSerializer.Meta):
|
||||
fields = TicketSerializer.Meta.fields
|
||||
read_only_fields = fields
|
||||
|
||||
|
||||
class TicketApplySerializer(TicketSerializer):
|
||||
org_id = serializers.CharField(
|
||||
required=True, max_length=36,
|
||||
allow_blank=True, label=_("Organization")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Ticket
|
||||
fields = TicketSerializer.Meta.fields
|
||||
extra_kwargs = {
|
||||
'type': {'required': True}
|
||||
}
|
||||
org_id = serializers.CharField(required=True, max_length=36, allow_blank=True, label=_("Organization"))
|
||||
|
||||
@staticmethod
|
||||
def validate_org_id(org_id):
|
||||
@@ -91,10 +72,13 @@ class TicketApplySerializer(TicketSerializer):
|
||||
if self.instance:
|
||||
return attrs
|
||||
|
||||
print("Attrs: ", attrs)
|
||||
|
||||
ticket_type = attrs.get('type')
|
||||
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) \
|
||||
.filter(type=ticket_type).first()
|
||||
|
||||
if flow:
|
||||
attrs['flow'] = flow
|
||||
else:
|
||||
|
Reference in New Issue
Block a user