mirror of https://github.com/jumpserver/jumpserver
parent
d07a230ba6
commit
dc32224294
|
@ -1,6 +1,6 @@
|
|||
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 tickets.models import ApplyApplicationTicket
|
||||
from .base import BaseHandler
|
||||
|
@ -26,6 +26,7 @@ class Handler(BaseHandler):
|
|||
apply_system_users = self.ticket.apply_system_users.all()
|
||||
|
||||
apply_permission_name = self.ticket.apply_permission_name
|
||||
apply_actions = self.ticket.apply_actions
|
||||
apply_category = self.ticket.apply_category
|
||||
apply_type = self.ticket.apply_type
|
||||
apply_date_start = self.ticket.apply_date_start
|
||||
|
@ -50,6 +51,7 @@ class Handler(BaseHandler):
|
|||
'name': apply_permission_name,
|
||||
'from_ticket': True,
|
||||
'category': apply_category,
|
||||
'actions': apply_actions,
|
||||
'type': apply_type,
|
||||
'comment': str(permission_comment),
|
||||
'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.utils.translation import gettext_lazy as _
|
||||
|
||||
from .general import Ticket
|
||||
from perms.models import Action
|
||||
from applications.const import AppCategory, AppType
|
||||
from .general import Ticket
|
||||
|
||||
__all__ = ['ApplyApplicationTicket']
|
||||
|
||||
|
@ -22,6 +23,9 @@ class ApplyApplicationTicket(Ticket):
|
|||
apply_system_users = models.ManyToManyField(
|
||||
'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_expired = models.DateTimeField(verbose_name=_('Date expired'), null=True)
|
||||
|
||||
|
@ -32,3 +36,10 @@ class ApplyApplicationTicket(Ticket):
|
|||
@property
|
||||
def apply_type_display(self):
|
||||
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 perms.models import ApplicationPermission
|
||||
from perms.serializers.base import ActionsField
|
||||
from orgs.utils import tmp_to_org
|
||||
from applications.models import Application
|
||||
from tickets.models import ApplyApplicationTicket
|
||||
|
@ -12,6 +13,7 @@ __all__ = ['ApplyApplicationSerializer', 'ApplyApplicationDisplaySerializer', 'A
|
|||
|
||||
|
||||
class ApplyApplicationSerializer(BaseApplyAssetApplicationSerializer, TicketApplySerializer):
|
||||
apply_actions = ActionsField(required=True, allow_empty=False)
|
||||
permission_model = ApplicationPermission
|
||||
|
||||
class Meta:
|
||||
|
@ -19,9 +21,10 @@ class ApplyApplicationSerializer(BaseApplyAssetApplicationSerializer, TicketAppl
|
|||
writeable_fields = [
|
||||
'id', 'title', 'type', 'apply_category',
|
||||
'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))
|
||||
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
||||
extra_kwargs = {
|
||||
|
|
|
@ -23,10 +23,11 @@ class ApplyAssetSerializer(BaseApplyAssetApplicationSerializer, TicketApplySeria
|
|||
model = ApplyAssetTicket
|
||||
writeable_fields = [
|
||||
'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'
|
||||
]
|
||||
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))
|
||||
ticket_extra_kwargs = TicketApplySerializer.Meta.extra_kwargs
|
||||
extra_kwargs = {
|
||||
|
|
Loading…
Reference in New Issue