mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-10-22 08:19:04 +00:00
[Change] 拆分user view为多个view
This commit is contained in:
@@ -1,16 +1,19 @@
|
||||
# ~*~ coding: utf-8 ~*~
|
||||
#
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from rest_framework.views import APIView, Response
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.generics import ListAPIView, get_object_or_404
|
||||
from rest_framework import viewsets
|
||||
from users.permissions import IsValidUser, IsSuperUser
|
||||
from users.permissions import IsValidUser, IsSuperUser, IsAppUser
|
||||
from common.utils import get_object_or_none
|
||||
from .utils import get_user_granted_assets, get_user_granted_asset_groups, get_user_asset_permissions, \
|
||||
get_user_group_asset_permissions, get_user_group_granted_assets, get_user_group_granted_asset_groups
|
||||
from .utils import get_user_granted_assets, get_user_granted_asset_groups, \
|
||||
get_user_asset_permissions, get_user_group_asset_permissions, \
|
||||
get_user_group_granted_assets, get_user_group_granted_asset_groups
|
||||
from .models import AssetPermission
|
||||
from .hands import AssetGrantedSerializer, User, UserGroup, AssetGroup, Asset, AssetGroup, AssetGroupSerializer
|
||||
from .hands import AssetGrantedSerializer, User, UserGroup, AssetGroup, Asset, \
|
||||
AssetGroup, AssetGroupSerializer, SystemUser
|
||||
from . import serializers
|
||||
|
||||
|
||||
@@ -80,11 +83,12 @@ class UserGrantedAssetsApi(ListAPIView):
|
||||
def get_queryset(self):
|
||||
user_id = self.kwargs.get('pk', '')
|
||||
|
||||
queryset = []
|
||||
if user_id:
|
||||
user = get_object_or_404(User, id=user_id)
|
||||
queryset = get_user_granted_assets(user)
|
||||
else:
|
||||
queryset = []
|
||||
for k, v in get_user_granted_assets(user).items():
|
||||
k.system_users_granted = v
|
||||
queryset.append(k)
|
||||
return queryset
|
||||
|
||||
|
||||
@@ -104,19 +108,26 @@ class UserGrantedAssetGroupsApi(ListAPIView):
|
||||
|
||||
|
||||
class MyGrantedAssetsApi(ListAPIView):
|
||||
"""授权给用户的资产列表
|
||||
[{'hostname': 'x','ip': 'x', ..,
|
||||
'system_users_granted': [{'name': 'x', .}, ...]
|
||||
"""
|
||||
permission_classes = (IsValidUser,)
|
||||
serializer_class = AssetGrantedSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = []
|
||||
user = self.request.user
|
||||
if user:
|
||||
queryset = get_user_granted_assets(user)
|
||||
else:
|
||||
queryset = []
|
||||
for asset, system_users in get_user_granted_assets(user).items():
|
||||
asset.system_users_granted = system_users
|
||||
queryset.append(asset)
|
||||
return queryset
|
||||
|
||||
|
||||
class MyGrantedAssetsGroupsApi(APIView):
|
||||
"""授权给用户的资产组列表, 非直接通过授权规则授权的资产组列表, 而是授权资产的所有
|
||||
资产组之和"""
|
||||
permission_classes = (IsValidUser,)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
@@ -141,6 +152,7 @@ class MyGrantedAssetsGroupsApi(APIView):
|
||||
|
||||
|
||||
class MyAssetGroupAssetsApi(ListAPIView):
|
||||
"""授权用户资产组下的资产列表, 非该资产组的所有资产,而是被授权的"""
|
||||
permission_classes = (IsValidUser,)
|
||||
serializer_class = AssetGrantedSerializer
|
||||
|
||||
@@ -152,8 +164,9 @@ class MyAssetGroupAssetsApi(ListAPIView):
|
||||
|
||||
if user and asset_group:
|
||||
assets = get_user_granted_assets(user)
|
||||
for asset in assets:
|
||||
if asset_group in asset.groups.all():
|
||||
for asset in asset_group.assets.all():
|
||||
if asset in assets:
|
||||
asset.system_users_granted = assets[asset]
|
||||
queryset.append(asset)
|
||||
return queryset
|
||||
|
||||
@@ -185,4 +198,24 @@ class UserGroupGrantedAssetGroupsApi(ListAPIView):
|
||||
queryset = get_user_group_granted_asset_groups(user_group)
|
||||
else:
|
||||
queryset = []
|
||||
return queryset
|
||||
return queryset
|
||||
|
||||
|
||||
class CheckUserAssetSystemPermission(APIView):
|
||||
permission_classes = (IsAppUser,)
|
||||
|
||||
def get(self, request):
|
||||
user_id = request.params.get('user_id', '')
|
||||
asset_id = request.params.get('asset_id', '')
|
||||
system_id = request.params.get('system_id', '')
|
||||
|
||||
user = get_object_or_none(User, id=user_id)
|
||||
asset = get_object_or_none(Asset, id=asset_id)
|
||||
system_user = get_object_or_none(SystemUser, id=system_id)
|
||||
|
||||
if not (user and asset and system_user):
|
||||
return Response(status=403)
|
||||
|
||||
assets_granted = get_user_granted_assets(user)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user