mirror of https://github.com/jumpserver/jumpserver
fix: 修改会话共享可以指定用户的一些问题
parent
9465138faf
commit
8e65975cd7
|
@ -24,7 +24,7 @@ class BaseStorageViewSetMixin:
|
|||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
instance = self.get_object()
|
||||
if instance.type_null_or_server:
|
||||
if instance.type_null_or_server or instance.is_default:
|
||||
data = {'msg': _('Deleting the default storage is not allowed')}
|
||||
return Response(data=data, status=status.HTTP_400_BAD_REQUEST)
|
||||
if instance.is_use():
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 3.1.14 on 2022-05-17 00:52
|
||||
# Generated by Django 3.1.14 on 2022-06-30 03:38
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
@ -6,13 +6,13 @@ from django.db import migrations, models
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('terminal', '0049_endpoint_redis_port'),
|
||||
('terminal', '0050_auto_20220606_1745'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='sessionsharing',
|
||||
name='users',
|
||||
field=models.CharField(default=list, max_length=1024, verbose_name='User'),
|
||||
field=models.TextField(blank=True, verbose_name='User'),
|
||||
),
|
||||
]
|
|
@ -3,6 +3,8 @@ import datetime
|
|||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils import timezone
|
||||
from orgs.utils import tmp_to_root_org
|
||||
from users.models import User
|
||||
|
||||
from common.mixins import CommonModelMixin
|
||||
from orgs.mixins.models import OrgModelMixin
|
||||
|
@ -28,7 +30,7 @@ class SessionSharing(CommonModelMixin, OrgModelMixin):
|
|||
expired_time = models.IntegerField(
|
||||
default=0, verbose_name=_('Expired time (min)'), db_index=True
|
||||
)
|
||||
users = models.CharField(max_length=1024, verbose_name=_("User"), default=list)
|
||||
users = models.TextField(blank=True, verbose_name=_("User"))
|
||||
|
||||
class Meta:
|
||||
ordering = ('-date_created', )
|
||||
|
@ -40,6 +42,13 @@ class SessionSharing(CommonModelMixin, OrgModelMixin):
|
|||
def __str__(self):
|
||||
return 'Creator: {}'.format(self.creator)
|
||||
|
||||
def users_display(self):
|
||||
with tmp_to_root_org():
|
||||
user_ids = self.users.split(',')
|
||||
users = User.objects.filter(id__in=user_ids)
|
||||
users = [str(user) for user in users]
|
||||
return users
|
||||
|
||||
@property
|
||||
def date_expired(self):
|
||||
return self.date_created + datetime.timedelta(minutes=self.expired_time)
|
||||
|
|
|
@ -9,7 +9,7 @@ __all__ = ['SessionSharingSerializer', 'SessionJoinRecordSerializer']
|
|||
|
||||
class SessionSharingSerializer(OrgResourceModelSerializerMixin):
|
||||
users = serializers.ListSerializer(
|
||||
child=serializers.CharField(max_length=36), write_only=True, default=list, allow_null=True
|
||||
child=serializers.CharField(max_length=36), allow_null=True, write_only=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
@ -17,7 +17,7 @@ class SessionSharingSerializer(OrgResourceModelSerializerMixin):
|
|||
fields_mini = ['id']
|
||||
fields_small = fields_mini + [
|
||||
'verify_code', 'is_active', 'expired_time', 'created_by',
|
||||
'date_created', 'date_updated', 'users'
|
||||
'date_created', 'date_updated', 'users', 'users_display'
|
||||
]
|
||||
fields_fk = ['session', 'creator']
|
||||
fields = fields_small + fields_fk
|
||||
|
|
Loading…
Reference in New Issue