• BaiJiangJie's avatar
    [Feature] 添加资产用户管理器 (#2489) · 4e705a52
    BaiJiangJie authored
    * [Feature] 1. 资产用户管理器
    
    * [Feature] 2. 资产用户管理器: 更新AuthBook
    
    * [Feature] 3. 资产用户管理器: 添加 AssetUser API
    
    * [Feature] 4. AssetUser Model: 添加方法 load_related_asset_auth
    
    * [Feature] 5. AdminUser: 更新管理用户获取认证信息时,先加载相关资产的认证
    
    * [Feature] 6. SystemUser: 更新系统用户获取认证信息时,先加载相关资产的认证
    
    * [Feature] 前端页面: 添加资产用户列表页面
    
    * [Feature] 前端页面: 管理用户的资产管理页面添加按钮: 修改资产用户认证信息
    
    * [Feature] 前端页面: 系统用户的资产管理页面添加按钮: 修改资产用户认证信息
    
    * [Feature] 优化: 从管理用户和系统用户的backend中获取相关资产用户的逻辑
    
    * [Update] Fix 1
    
    * [Feature] 优化: SystemUserBackend之filter功能
    
    * [Feature] 优化: AdminUserBackend之filter功能
    
    * [Feature] 优化: AdminUserBackend和SystemUserBackend功能
    
    * [Feature] 更新翻译: 资产用户管理器
    
    * [Update] 更新资产用户列表页名称为: asset_asset_user_list.html
    
    * [Bugfix] 修改bug: SystemUserBackend 根据用户名过滤系统用户
    
    * [Feature] 添加: 资产用户列表中可测试资产用户的连接性
    
    * [Update] 修改: AdHoc model的run_as字段从SystemUser外键修改为username字符串
    
    * [Feature] 添加: 获取系统用户认证信息(对应某个资产)API
    
    * [Update] 更新: API获取asset user时进行排序
    
    * [Bugfix] 修改: 资产用户可连接性CACHE_KEY
    
    * [Update] 更新翻译信息
    
    * [Update] 修改获取资产用户认证信息API的返回响应(200/400)
    
    * [Update] 修改BaseUser获取特定资产的方法名
    
    * [Update] 修改logger输出,AuthBook set_version_and_latest
    
    * [Update] 修改日志输出添加exc_info参数
    
    * [Update] 移除AuthBook迁移文件0026
    
    * [Bugfix] 修复AdminUserBackend获取instances为空的bug
    4e705a52
api_urls.py 4.54 KB
# coding:utf-8
from django.urls import path
from rest_framework_nested import routers
# from rest_framework.routers import DefaultRouter
from rest_framework_bulk.routes import BulkRouter

from .. import api

app_name = 'assets'

router = BulkRouter()
router.register(r'assets', api.AssetViewSet, 'asset')
router.register(r'admin-user', api.AdminUserViewSet, 'admin-user')
router.register(r'system-user', api.SystemUserViewSet, 'system-user')
router.register(r'labels', api.LabelViewSet, 'label')
router.register(r'nodes', api.NodeViewSet, 'node')
router.register(r'domain', api.DomainViewSet, 'domain')
router.register(r'gateway', api.GatewayViewSet, 'gateway')
router.register(r'cmd-filter', api.CommandFilterViewSet, 'cmd-filter')
router.register(r'asset-user', api.AssetUserViewSet, 'asset-user')

cmd_filter_router = routers.NestedDefaultRouter(router, r'cmd-filter', lookup='filter')
cmd_filter_router.register(r'rules', api.CommandFilterRuleViewSet, 'cmd-filter-rule')


urlpatterns = [
    path('assets-bulk/', api.AssetListUpdateApi.as_view(), name='asset-bulk-update'),
    path('assets/<uuid:pk>/refresh/',
         api.AssetRefreshHardwareApi.as_view(), name='asset-refresh'),
    path('assets/<uuid:pk>/alive/',
         api.AssetAdminUserTestApi.as_view(), name='asset-alive-test'),
    path('assets/<uuid:pk>/gateway/',
         api.AssetGatewayApi.as_view(), name='asset-gateway'),

    path('asset-user/auth-info/',
         api.AssetUserAuthInfoApi.as_view(), name='asset-user-auth-info'),
    path('asset-user/test-connective/',
         api.AssetUserTestConnectiveApi.as_view(), name='asset-user-connective'),


    path('admin-user/<uuid:pk>/nodes/',
         api.ReplaceNodesAdminUserApi.as_view(), name='replace-nodes-admin-user'),
    path('admin-user/<uuid:pk>/auth/',
         api.AdminUserAuthApi.as_view(), name='admin-user-auth'),
    path('admin-user/<uuid:pk>/connective/',
         api.AdminUserTestConnectiveApi.as_view(), name='admin-user-connective'),
    path('admin-user/<uuid:pk>/assets/',
         api.AdminUserAssetsListView.as_view(), name='admin-user-assets'),

    path('system-user/<uuid:pk>/auth-info/',
         api.SystemUserAuthInfoApi.as_view(), name='system-user-auth-info'),
    path('system-user/<uuid:pk>/asset/<uuid:aid>/auth-info/',
         api.SystemUserAssetAuthInfoApi.as_view(), name='system-user-asset-auth-info'),
    path('system-user/<uuid:pk>/assets/',
         api.SystemUserAssetsListView.as_view(), name='system-user-assets'),
    path('system-user/<uuid:pk>/push/',
         api.SystemUserPushApi.as_view(), name='system-user-push'),
    path('system-user/<uuid:pk>/asset/<uuid:aid>/push/',
         api.SystemUserPushToAssetApi.as_view(), name='system-user-push-to-asset'),
    path('system-user/<uuid:pk>/asset/<uuid:aid>/test/',
         api.SystemUserTestAssetConnectivityApi.as_view(), name='system-user-test-to-asset'),
    path('system-user/<uuid:pk>/connective/',
         api.SystemUserTestConnectiveApi.as_view(), name='system-user-connective'),
    path('system-user/<uuid:pk>/cmd-filter-rules/',
         api.SystemUserCommandFilterRuleListApi.as_view(), name='system-user-cmd-filter-rule-list'),

    path('nodes/tree/', api.NodeListAsTreeApi.as_view(), name='node-tree'),
    path('nodes/children/tree/', api.NodeChildrenAsTreeApi.as_view(), name='node-children-tree'),
    path('nodes/<uuid:pk>/children/',
         api.NodeChildrenApi.as_view(), name='node-children'),
    path('nodes/children/', api.NodeChildrenApi.as_view(), name='node-children-2'),
    path('nodes/<uuid:pk>/children/add/',
         api.NodeAddChildrenApi.as_view(), name='node-add-children'),
    path('nodes/<uuid:pk>/assets/',
         api.NodeAssetsApi.as_view(), name='node-assets'),
    path('nodes/<uuid:pk>/assets/add/',
         api.NodeAddAssetsApi.as_view(), name='node-add-assets'),
    path('nodes/<uuid:pk>/assets/replace/',
         api.NodeReplaceAssetsApi.as_view(), name='node-replace-assets'),
    path('nodes/<uuid:pk>/assets/remove/',
         api.NodeRemoveAssetsApi.as_view(), name='node-remove-assets'),
    path('nodes/<uuid:pk>/refresh-hardware-info/',
         api.RefreshNodeHardwareInfoApi.as_view(), name='node-refresh-hardware-info'),
    path('nodes/<uuid:pk>/test-connective/',
         api.TestNodeConnectiveApi.as_view(), name='node-test-connective'),
    path('nodes/refresh-assets-amount/',
         api.RefreshAssetsAmount.as_view(), name='refresh-assets-amount'),

    path('gateway/<uuid:pk>/test-connective/',
         api.GatewayTestConnectionApi.as_view(), name='test-gateway-connective'),

]

urlpatterns += router.urls + cmd_filter_router.urls