fix: 修改会话共享可以指定用户的一些问题

pull/8518/head
Jiangjie.Bai 2022-06-30 12:34:23 +08:00 committed by Jiangjie.Bai
parent 9465138faf
commit 8e65975cd7
4 changed files with 16 additions and 7 deletions

View File

@ -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():

View File

@ -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'),
),
]

View File

@ -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)

View File

@ -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