diff --git a/apps/i18n/lina/en.json b/apps/i18n/lina/en.json index fd56a2ffa..ed82c429c 100644 --- a/apps/i18n/lina/en.json +++ b/apps/i18n/lina/en.json @@ -19,6 +19,7 @@ "AccountBackupTask": "Account backup task | Account backup tasks", "AccountBackupUpdate": "Update account backup", "AccountChangeSecret": "Account change secret", + "UserLoginTrends": "User login trend", "AccountChangeSecretDetail": "Change account secret details", "AccountConnectivityStatusDistribution": "Account connectivity status distribution", "AccountCreationSourceDistribution": "Account creation source distribution", diff --git a/apps/i18n/lina/zh.json b/apps/i18n/lina/zh.json index ddc6b6988..d702c5720 100644 --- a/apps/i18n/lina/zh.json +++ b/apps/i18n/lina/zh.json @@ -1129,6 +1129,7 @@ "RequiredSystemUserErrMsg": "请选择账号", "RequiredUploadFile": "请上传文件!", "Reset": "还原", + "UserLoginTrends": "用户登录趋势", "ResetAndDownloadSSHKey": "重置并下载密钥", "ResetMFA": "重置MFA", "ResetMFAWarningMsg": "你确定要重置用户的 MFA 吗?", diff --git a/apps/reports/api/assets/asset.py b/apps/reports/api/assets/asset.py index b171cc719..fdf5715dc 100644 --- a/apps/reports/api/assets/asset.py +++ b/apps/reports/api/assets/asset.py @@ -6,7 +6,7 @@ from django.db.models import Count, Q from django.http import JsonResponse from rest_framework.views import APIView -from assets.const import AllTypes, Connectivity +from assets.const import AllTypes, Connectivity, Category from assets.models import Asset, Platform from common.permissions import IsValidLicense from common.utils import lazyproperty @@ -50,15 +50,16 @@ class AssetStatisticApi(DateRangeMixin, APIView): directory_services=Count(1, filter=Q(directory_services__isnull=False)), ) - type_category_map = { - d['value']: str(d['category'].label) - for d in AllTypes.types() - } + category_map = Category.as_dict() + + category_type_map = defaultdict(list) + for d in AllTypes.types(): + category_type_map[str(d['category'].label)].append(d['value']) category_type_ids = defaultdict(lambda: defaultdict(set)) for _id, tp, category in (qs.select_related('platform') .values_list('id', 'platform__type', 'platform__category')): - category_label = type_category_map.get(tp, 'Other') + category_label = category_map.get(category, category) category_type_ids[category_label][tp].add(_id) by_type_category = defaultdict(list) diff --git a/apps/reports/api/users/user.py b/apps/reports/api/users/user.py index dbe0cf455..0997f38b0 100644 --- a/apps/reports/api/users/user.py +++ b/apps/reports/api/users/user.py @@ -22,7 +22,7 @@ __all__ = ['UserReportApi'] class UserReportApi(DateRangeMixin, APIView): http_method_names = ['get'] rbac_perms = { - 'GET': 'users.view_users', + 'GET': 'users.view_user', } permission_classes = [RBACPermission, IsValidLicense]