perf: update some i18n

pull/14878/head
ibuler 2025-02-12 09:58:30 +08:00
parent 53fa5a2320
commit 0a0f8e2e56
3 changed files with 31 additions and 2 deletions

View File

@ -510,6 +510,8 @@
"Existing": "Already exists",
"ExpirationTimeout": "Expiration timeout (seconds)",
"Expire": "Expire",
"QuickFilter": "Quick filter",
"NoResource": "No valid resources",
"Expired": "Expired",
"Export": "Export",
"NeverLogin": "Never login",

View File

@ -925,6 +925,7 @@
"QuickAdd": "快速添加",
"QuickJob": "快捷命令",
"QuickUpdate": "快速更新",
"QuickFilter": "快速筛选",
"Radius": "Radius",
"Ranking": "排名",
"RazorNotSupport": "RDP 客户端会话, 暂不支持监控",
@ -999,6 +1000,7 @@
"ResolveSelected": "解决所选",
"RestoreButton": "恢复默认",
"RestoreDefault": "恢复默认",
"NoResource": "无配置资源",
"RestoreDialogMessage": "您确定要恢复默认初始化吗?",
"RestoreDialogTitle": "你确认吗",
"Result": "结果",

View File

@ -1,4 +1,5 @@
from django.db.models import QuerySet, Q
from django.utils import timezone
from django_filters import rest_framework as filters
from assets.models import Node, Asset
@ -10,6 +11,7 @@ from users.models import User, UserGroup
class PermissionBaseFilter(BaseFilterSet):
is_valid = filters.BooleanFilter(method='do_nothing')
is_expired = filters.BooleanFilter(method='filter_expired')
user_id = filters.UUIDFilter(method='do_nothing')
username = filters.CharFilter(method='do_nothing')
account_id = filters.UUIDFilter(method='do_nothing')
@ -32,6 +34,15 @@ class PermissionBaseFilter(BaseFilterSet):
qs = self.filter_user_group(qs)
return qs
@staticmethod
def filter_expired(queryset, name, is_expired):
now = timezone.now()
if is_expired:
queryset = queryset.filter(date_start__gt=now).filter(date_expired__lt=now)
else:
queryset = queryset.filter(Q(date_start__lt=now) | Q(date_expired__gt=now))
return queryset
def filter_valid(self, queryset):
is_valid = self.get_query_param('is_valid')
if is_valid is None:
@ -98,13 +109,14 @@ class AssetPermissionFilter(PermissionBaseFilter):
address = filters.CharFilter(method='do_nothing')
accounts = filters.CharFilter(method='do_nothing')
ip = filters.CharFilter(method='do_nothing')
is_no_resource = filters.BooleanFilter(method='filter_no_resource')
class Meta:
model = AssetPermission
fields = (
'user_id', 'username', 'user_group_id',
'user_group', 'node_id', 'node_name', 'asset_id', 'asset_name',
'name', 'ip', 'name',
'user_group', 'node_id', 'node_name', 'asset_id',
'asset_name', 'name', 'ip', 'name',
'all', 'is_valid', 'is_effective', 'from_ticket'
)
@ -187,6 +199,19 @@ class AssetPermissionFilter(PermissionBaseFilter):
qs = queryset.filter(id__in=qs_ids)
return qs
@staticmethod
def filter_no_resource(queryset, name, value):
not_have_user_q = Q(users__isnull=True) & Q(user_groups__isnull=True)
not_have_asset_q = Q(assets__isnull=True) & Q(nodes__isnull=True)
not_have_action_q = Q(actions=0)
q = not_have_user_q | not_have_asset_q | not_have_action_q
if value:
queryset = queryset.filter(q)
else:
queryset = queryset.exclude(q)
return queryset
def filter_effective(self, queryset):
is_effective = self.get_query_param('is_effective')
if is_effective is None: