mirror of https://github.com/jumpserver/jumpserver
parent
d07a230ba6
commit
dc32224294
|
@ -1,6 +1,6 @@
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from orgs.utils import tmp_to_org, tmp_to_root_org
|
from orgs.utils import tmp_to_org
|
||||||
from perms.models import ApplicationPermission
|
from perms.models import ApplicationPermission
|
||||||
from tickets.models import ApplyApplicationTicket
|
from tickets.models import ApplyApplicationTicket
|
||||||
from .base import BaseHandler
|
from .base import BaseHandler
|
||||||
|
@ -26,6 +26,7 @@ class Handler(BaseHandler):
|
||||||
apply_system_users = self.ticket.apply_system_users.all()
|
apply_system_users = self.ticket.apply_system_users.all()
|
||||||
|
|
||||||
apply_permission_name = self.ticket.apply_permission_name
|
apply_permission_name = self.ticket.apply_permission_name
|
||||||
|
apply_actions = self.ticket.apply_actions
|
||||||
apply_category = self.ticket.apply_category
|
apply_category = self.ticket.apply_category
|
||||||
apply_type = self.ticket.apply_type
|
apply_type = self.ticket.apply_type
|
||||||
apply_date_start = self.ticket.apply_date_start
|
apply_date_start = self.ticket.apply_date_start
|
||||||
|
@ -50,6 +51,7 @@ class Handler(BaseHandler):
|
||||||
'name': apply_permission_name,
|
'name': apply_permission_name,
|
||||||
'from_ticket': True,
|
'from_ticket': True,
|
||||||
'category': apply_category,
|
'category': apply_category,
|
||||||
|
'actions': apply_actions,
|
||||||
'type': apply_type,
|
'type': apply_type,
|
||||||
'comment': str(permission_comment),
|
'comment': str(permission_comment),
|
||||||
'created_by': permission_created_by,
|
'created_by': permission_created_by,
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.1.14 on 2022-07-22 08:03
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('tickets', '0017_auto_20220623_1027'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='applyapplicationticket',
|
||||||
|
name='apply_actions',
|
||||||
|
field=models.IntegerField(choices=[(255, 'All'), (1, 'Connect'), (2, 'Upload file'), (4, 'Download file'), (6, 'Upload download'), (8, 'Clipboard copy'), (16, 'Clipboard paste'), (24, 'Clipboard copy paste')], default=255, verbose_name='Actions'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,8 +1,9 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from .general import Ticket
|
from perms.models import Action
|
||||||
from applications.const import AppCategory, AppType
|
from applications.const import AppCategory, AppType
|
||||||
|
from .general import Ticket
|
||||||
|
|
||||||
__all__ = ['ApplyApplicationTicket']
|
__all__ = ['ApplyApplicationTicket']
|
||||||
|
|
||||||
|
@ -22,6 +23,9 @@ class ApplyApplicationTicket(Ticket):
|
||||||
apply_system_users = models.ManyToManyField(
|
apply_system_users = models.ManyToManyField(
|
||||||
'assets.SystemUser', verbose_name=_('Apply system users'),
|
'assets.SystemUser', verbose_name=_('Apply system users'),
|
||||||
)
|
)
|
||||||
|
apply_actions = models.IntegerField(
|
||||||
|
choices=Action.DB_CHOICES, default=Action.ALL, verbose_name=_('Actions')
|
||||||
|
)
|
||||||
apply_date_start = models.DateTimeField(verbose_name=_('Date start'), null=True)
|
apply_date_start = models.DateTimeField(verbose_name=_('Date start'), null=True)
|
||||||
apply_date_expired = models.DateTimeField(verbose_name=_('Date expired'), null=True)
|
apply_date_expired = models.DateTimeField(verbose_name=_('Date expired'), null=True)
|
||||||
|
|
||||||
|
@ -32,3 +36,10 @@ class ApplyApplicationTicket(Ticket):
|
||||||
@property
|
@property
|
||||||
def apply_type_display(self):
|
def apply_type_display(self):
|
||||||
return AppType.get_label(self.apply_type)
|
return AppType.get_label(self.apply_type)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def apply_actions_display(self):
|
||||||
|
return Action.value_to_choices_display(self.apply_actions)
|
||||||
|
|
||||||
|
def get_apply_actions_display(self):
|
||||||
|
return ', '.join(self.apply_actions_display)
|
||||||
|
|
|
@ -2,6 +2,7 @@ from django.utils.translation import ugettext as _
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from perms.models import ApplicationPermission
|
from perms.models import ApplicationPermission
|
||||||
|
from perms.serializers.base import ActionsField
|
||||||
from orgs.utils import tmp_to_org
|
from orgs.utils import tmp_to_org
|
||||||
from applications.models import Application
|
from applications.models import Application
|
||||||
from tickets.models import ApplyApplicationTicket
|
from tickets.models import ApplyApplicationTicket
|
||||||
|
@ -12,6 +13,7 @@ __all__ = ['ApplyApplicationSerializer', 'ApplyApplicationDisplaySerializer', 'A
|
||||||
|
|
||||||
|
|
||||||
class ApplyApplicationSerializer(BaseApplyAssetApplicationSerializer, TicketApplySerializer):
|
class ApplyApplicationSerializer(BaseApplyAssetApplicationSerializer, TicketApplySerializer):
|
||||||
|
apply_actions = ActionsField(required=True, allow_empty=False)
|
||||||
permission_model = ApplicationPermission
|
permission_model = ApplicationPermission
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -19,9 +21,10 @@ class ApplyApplicationSerializer(BaseApplyAssetApplicationSerializer, TicketAppl
|
||||||
writeable_fields = [
|
writeable_fields = [
|
||||||
'id', 'title', 'type', 'apply_category',
|
'id', 'title', 'type', 'apply_category',
|
||||||
'apply_type', 'apply_applications', 'apply_system_users',
|
'apply_type', 'apply_applications', 'apply_system_users',
|
||||||
'apply_date_start', 'apply_date_expired', 'org_id'
|
'apply_actions', 'apply_date_start', 'apply_date_expired', 'org_id'
|
||||||
]
|
]
|
||||||
fields = TicketApplySerializer.Meta.fields + writeable_fields + ['apply_permission_name']
|
fields = TicketApplySerializer.Meta.fields + \
|
||||||
|
writeable_fields + ['apply_permission_name', 'apply_actions_display']
|
||||||
read_only_fields = list(set(fields) - set(writeable_fields))
|
read_only_fields = list(set(fields) - set(writeable_fields))
|
||||||
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
|
|
|
@ -23,10 +23,11 @@ class ApplyAssetSerializer(BaseApplyAssetApplicationSerializer, TicketApplySeria
|
||||||
model = ApplyAssetTicket
|
model = ApplyAssetTicket
|
||||||
writeable_fields = [
|
writeable_fields = [
|
||||||
'id', 'title', 'type', 'apply_nodes', 'apply_assets',
|
'id', 'title', 'type', 'apply_nodes', 'apply_assets',
|
||||||
'apply_system_users', 'apply_actions', 'apply_actions_display',
|
'apply_system_users', 'apply_actions',
|
||||||
'apply_date_start', 'apply_date_expired', 'org_id'
|
'apply_date_start', 'apply_date_expired', 'org_id'
|
||||||
]
|
]
|
||||||
fields = TicketApplySerializer.Meta.fields + writeable_fields + ['apply_permission_name']
|
fields = TicketApplySerializer.Meta.fields + \
|
||||||
|
writeable_fields + ['apply_permission_name', 'apply_actions_display']
|
||||||
read_only_fields = list(set(fields) - set(writeable_fields))
|
read_only_fields = list(set(fields) - set(writeable_fields))
|
||||||
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
|
|
Loading…
Reference in New Issue