perf: Admin connection token validate_permission account

pull/14747/head
feng 2024-12-31 15:56:04 +08:00 committed by feng626
parent af85dba667
commit 1ac5de762d
1 changed files with 9 additions and 1 deletions

View File

@ -1,12 +1,14 @@
from collections import defaultdict from collections import defaultdict
from django.utils import timezone
from accounts.const import AliasAccount from accounts.const import AliasAccount
from accounts.models import VirtualAccount from accounts.models import VirtualAccount
from assets.models import Asset, MyAsset from assets.models import Asset, MyAsset
from common.utils import lazyproperty from common.utils import lazyproperty
from orgs.utils import tmp_to_org, tmp_to_root_org from orgs.utils import tmp_to_org, tmp_to_root_org
from .permission import AssetPermissionUtil
from perms.const import ActionChoices from perms.const import ActionChoices
from .permission import AssetPermissionUtil
__all__ = ['PermAssetDetailUtil'] __all__ = ['PermAssetDetailUtil']
@ -40,6 +42,12 @@ class PermAssetDetailUtil:
def validate_permission(self, account_name, protocol): def validate_permission(self, account_name, protocol):
with tmp_to_org(self.asset.org): with tmp_to_org(self.asset.org):
if self.user.is_superuser:
account = self.asset.accounts.all().active().get(name=account_name)
account.actions = ActionChoices.all()
account.date_expired = timezone.now() + timezone.timedelta(days=365)
return account
protocols = self.get_permed_protocols_for_user(only_name=True) protocols = self.get_permed_protocols_for_user(only_name=True)
if 'all' not in protocols and protocol not in protocols: if 'all' not in protocols and protocol not in protocols:
return None return None