From 5153817ff4009810c6873a79fa079314271c3057 Mon Sep 17 00:00:00 2001 From: Bai Date: Fri, 10 Feb 2023 15:56:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=90=8C=E5=90=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E6=97=B6username=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/accounts/models/account.py | 4 ++-- apps/authentication/api/connection_token.py | 3 +++ apps/perms/utils/account.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/accounts/models/account.py b/apps/accounts/models/account.py index 4b33a1d1a..4ea416778 100644 --- a/apps/accounts/models/account.py +++ b/apps/accounts/models/account.py @@ -90,9 +90,9 @@ class Account(AbsConnectivity, BaseAccount): return cls(name=AliasAccount.INPUT.label, username=AliasAccount.INPUT.value, secret=None) @classmethod - def get_user_account(cls, username): + def get_user_account(cls): """ @USER 动态用户的账号(self) """ - return cls(name=AliasAccount.USER.label, username=AliasAccount.USER.value) + return cls(name=AliasAccount.USER.label, username=AliasAccount.USER.value, secret=None) def get_su_from_accounts(self): """ 排除自己和以自己为 su-from 的账号 """ diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py index 41cce13f7..c3f86c917 100644 --- a/apps/authentication/api/connection_token.py +++ b/apps/authentication/api/connection_token.py @@ -247,8 +247,11 @@ class ConnectionTokenViewSet(ExtraActionApiMixin, RootOrgViewMixin, JMSModelView account = self._validate_perm(user, asset, account_name) if account.has_secret: data['input_secret'] = '' + if account.username != '@INPUT': data['input_username'] = '' + if account.username == '@USER': + data['input_username'] = user.username ticket = self._validate_acl(user, asset, account) if ticket: diff --git a/apps/perms/utils/account.py b/apps/perms/utils/account.py index 5973ea4d7..5d8180016 100644 --- a/apps/perms/utils/account.py +++ b/apps/perms/utils/account.py @@ -58,7 +58,7 @@ class PermAccountUtil(AssetPermissionUtil): if user.username in username_account_mapper: account = username_account_mapper[user.username] else: - account = Account.get_user_account(user.username) + account = Account.get_user_account() elif alias == AliasAccount.INPUT: account = Account.get_manual_account() elif alias in username_account_mapper: