From 71e76e5075eaa5466423592cc0d639a2ca0a3066 Mon Sep 17 00:00:00 2001 From: Bai Date: Tue, 6 Dec 2022 17:32:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0su-from-accountsAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/account/account.py | 8 ++++++++ apps/assets/models/account.py | 3 +++ 2 files changed, 11 insertions(+) diff --git a/apps/assets/api/account/account.py b/apps/assets/api/account/account.py index e22b13c16..714d3d5a2 100644 --- a/apps/assets/api/account/account.py +++ b/apps/assets/api/account/account.py @@ -27,8 +27,16 @@ class AccountViewSet(OrgBulkModelViewSet): rbac_perms = { 'verify': 'assets.test_account', 'partial_update': 'assets.change_accountsecret', + 'su_from_accounts': 'assets.view_account', } + @action(methods=['get'], detail=True, url_path='su-from-accounts') + def su_from_accounts(self, request, *args, **kwargs): + account = super().get_object() + accounts = account.get_su_from_accounts() + serializer = serializers.AccountSerializer(accounts, many=True) + return Response(data=serializer.data) + @action(methods=['post'], detail=True, url_path='verify') def verify_account(self, request, *args, **kwargs): account = super().get_object() diff --git a/apps/assets/models/account.py b/apps/assets/models/account.py index 930fd7882..7703ac1e6 100644 --- a/apps/assets/models/account.py +++ b/apps/assets/models/account.py @@ -87,6 +87,9 @@ class Account(AbsConnectivity, BaseAccount): """ @USER 动态用户的账号(self) """ return cls(name=cls.AliasAccount.USER.label, username=cls.AliasAccount.USER.value) + def get_su_from_accounts(self): + return self.asset.accounts.exclude(id=self.id) + class AccountTemplate(BaseAccount): class Meta: