fix: 修改用户授权的资产账号API

pull/9075/head
Jiangjie.Bai 2022-11-15 16:07:42 +08:00
parent 9d0e2b2872
commit a5fa5fd262
2 changed files with 12 additions and 14 deletions

View File

@ -1,8 +1,8 @@
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from rest_framework.generics import ListAPIView, get_object_or_404 from rest_framework.generics import ListAPIView, get_object_or_404
from common.permissions import IsValidUser from common.exceptions import JMSObjectDoesNotExist
from common.utils import get_logger, lazyproperty from common.utils import get_logger, lazyproperty, is_uuid
from perms import serializers from perms import serializers
from perms.hands import User, Asset from perms.hands import User, Asset
from perms.utils import PermAccountUtil from perms.utils import PermAccountUtil
@ -11,20 +11,26 @@ logger = get_logger(__name__)
__all__ = [ __all__ = [
'UserGrantedAssetAccountsApi', 'UserGrantedAssetAccountsApi',
'MyGrantedAssetAccountsApi',
] ]
class UserGrantedAssetAccountsApi(ListAPIView): class UserGrantedAssetAccountsApi(ListAPIView):
serializer_class = serializers.AccountsGrantedSerializer serializer_class = serializers.AccountsGrantedSerializer
rbac_perms = ( rbac_perms = (
('GET', 'perms.view_userassets'),
('list', 'perms.view_userassets'), ('list', 'perms.view_userassets'),
) )
@lazyproperty @lazyproperty
def user(self) -> User: def user(self) -> User:
user_id = self.kwargs.get('pk') query_user = self.kwargs.get('user')
return User.objects.get(id=user_id) if is_uuid(query_user):
user = User.objects.get(id=query_user)
elif query_user == 'my':
user = self.request.user
else:
raise JMSObjectDoesNotExist(object_name=_('User'))
return user
@lazyproperty @lazyproperty
def asset(self): def asset(self):
@ -37,11 +43,3 @@ class UserGrantedAssetAccountsApi(ListAPIView):
util = PermAccountUtil() util = PermAccountUtil()
accounts = util.get_permed_accounts_for_user(self.user, self.asset) accounts = util.get_permed_accounts_for_user(self.user, self.asset)
return accounts return accounts
class MyGrantedAssetAccountsApi(UserGrantedAssetAccountsApi):
permission_classes = (IsValidUser,)
@lazyproperty
def user(self):
return self.request.user

View File

@ -70,7 +70,7 @@ user_permission_urlpatterns = [
# 获取授权给用户某个资产的所有账号 # 获取授权给用户某个资产的所有账号
path('<str:user>/assets/<uuid:asset_id>/accounts/', api.UserGrantedAssetAccountsApi.as_view(), path('<str:user>/assets/<uuid:asset_id>/accounts/', api.UserGrantedAssetAccountsApi.as_view(),
name='user-asset-accounts'), name='user-granted-asset-accounts'),
] ]
user_group_permission_urlpatterns = [ user_group_permission_urlpatterns = [