perf: connect token 允许复用

This commit is contained in:
ibuler
2023-05-09 13:43:46 +08:00
committed by Jiangjie.Bai
parent 926550bf26
commit 2aa03d5b79
8 changed files with 89 additions and 20 deletions

View File

@@ -40,6 +40,7 @@ class ConnectionToken(JMSOrgBaseModel):
connect_method = models.CharField(max_length=32, verbose_name=_("Connect method"))
user_display = models.CharField(max_length=128, default='', verbose_name=_("User display"))
asset_display = models.CharField(max_length=128, default='', verbose_name=_("Asset display"))
is_reusable = models.BooleanField(default=False, verbose_name=_("Reusable"))
date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_("Date expired"))
from_ticket = models.OneToOneField(
'tickets.ApplyLoginAssetTicket', related_name='connection_token',
@@ -74,7 +75,7 @@ class ConnectionToken(JMSOrgBaseModel):
def expire(self):
self.date_expired = timezone.now()
self.save()
self.save(update_fields=['date_expired'])
def renewal(self):
""" 续期 Token将来支持用户自定义创建 token 后,续期策略要修改 """
@@ -108,9 +109,8 @@ class ConnectionToken(JMSOrgBaseModel):
error = _('No user or invalid user')
raise PermissionDenied(error)
if not self.asset or not self.asset.is_active:
is_valid = False
error = _('No asset or inactive asset')
return is_valid, error
raise PermissionDenied(error)
if not self.account:
error = _('No account')
raise PermissionDenied(error)