perf: 账号生成时,排除 [ 开头的

pull/11250/head
ibuler 2023-08-10 18:23:53 +08:00
parent e416a5d5d7
commit e9e5fbb4c2
7 changed files with 36 additions and 25 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-10 17:27+0800\n" "POT-Creation-Date: 2023-08-10 18:22+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -289,7 +289,7 @@ msgstr "アカウントバックアップ計画"
#: assets/models/automations/base.py:115 audits/models.py:60 #: assets/models/automations/base.py:115 audits/models.py:60
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:221 #: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:221
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:139 #: perms/models/asset_permission.py:72 terminal/models/applet/host.py:140
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
#: tickets/models/ticket/apply_asset.py:19 #: tickets/models/ticket/apply_asset.py:19
@ -418,7 +418,7 @@ msgstr "開始日"
#: accounts/models/automations/change_secret.py:91 #: accounts/models/automations/change_secret.py:91
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:64 ops/models/job.py:222 #: ops/models/celery.py:64 ops/models/job.py:222
#: terminal/models/applet/host.py:140 #: terminal/models/applet/host.py:141
msgid "Date finished" msgid "Date finished"
msgstr "終了日" msgstr "終了日"
@ -762,7 +762,7 @@ msgstr ""
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26 #: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:138 ops/models/playbook.py:31 rbac/models/role.py:37 #: ops/models/job.py:138 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:37 terminal/models/applet/applet.py:44 #: settings/models.py:37 terminal/models/applet/applet.py:44
#: terminal/models/applet/applet.py:284 terminal/models/applet/host.py:141 #: terminal/models/applet/applet.py:284 terminal/models/applet/host.py:142
#: terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:24
#: terminal/models/component/endpoint.py:104 #: terminal/models/component/endpoint.py:104
#: terminal/models/session/session.py:46 tickets/models/comment.py:32 #: terminal/models/session/session.py:46 tickets/models/comment.py:32
@ -1530,7 +1530,7 @@ msgstr "アセットの自動化タスク"
#: assets/models/automations/base.py:113 audits/models.py:199 #: assets/models/automations/base.py:113 audits/models.py:199
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:213 #: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:213
#: terminal/models/applet/applet.py:283 terminal/models/applet/host.py:138 #: terminal/models/applet/applet.py:283 terminal/models/applet/host.py:139
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18 #: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283 #: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13 #: tickets/serializers/super_ticket.py:13
@ -2138,7 +2138,7 @@ msgstr "セッションログ"
msgid "Login log" msgid "Login log"
msgstr "ログインログ" msgstr "ログインログ"
#: audits/const.py:43 terminal/models/applet/host.py:142 #: audits/const.py:43 terminal/models/applet/host.py:143
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
msgid "Task" msgid "Task"
msgstr "タスク" msgstr "タスク"
@ -6025,7 +6025,7 @@ msgid "Missing type in platform.yml"
msgstr "platform.ymlにタイプがありません" msgstr "platform.ymlにタイプがありません"
#: terminal/models/applet/applet.py:282 terminal/models/applet/host.py:35 #: terminal/models/applet/applet.py:282 terminal/models/applet/host.py:35
#: terminal/models/applet/host.py:136 #: terminal/models/applet/host.py:137
msgid "Hosting" msgid "Hosting"
msgstr "ホスト マシン" msgstr "ホスト マシン"
@ -6053,7 +6053,7 @@ msgstr "初期化日"
msgid "Date synced" msgid "Date synced"
msgstr "同期日" msgstr "同期日"
#: terminal/models/applet/host.py:137 #: terminal/models/applet/host.py:138
msgid "Initial" msgid "Initial"
msgstr "初期化" msgstr "初期化"
@ -6962,7 +6962,11 @@ msgstr "無効な承認アクション"
msgid "This user is not authorized to approve this ticket" msgid "This user is not authorized to approve this ticket"
msgstr "このユーザーはこの作業指示を承認する権限がありません" msgstr "このユーザーはこの作業指示を承認する権限がありません"
#: users/api/user.py:190 #: users/api/user.py:141
msgid "Can not invite self"
msgstr "自分自身を招待することはできません"
#: users/api/user.py:194
msgid "Could not reset self otp, use profile reset instead" msgid "Could not reset self otp, use profile reset instead"
msgstr "自己otpをリセットできませんでした、代わりにプロファイルリセットを使用" msgstr "自己otpをリセットできませんでした、代わりにプロファイルリセットを使用"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-10 17:27+0800\n" "POT-Creation-Date: 2023-08-10 18:22+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -288,7 +288,7 @@ msgstr "账号备份计划"
#: assets/models/automations/base.py:115 audits/models.py:60 #: assets/models/automations/base.py:115 audits/models.py:60
#: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:221 #: ops/models/base.py:55 ops/models/celery.py:63 ops/models/job.py:221
#: ops/templates/ops/celery_task_log.html:75 #: ops/templates/ops/celery_task_log.html:75
#: perms/models/asset_permission.py:72 terminal/models/applet/host.py:139 #: perms/models/asset_permission.py:72 terminal/models/applet/host.py:140
#: terminal/models/session/session.py:44 #: terminal/models/session/session.py:44
#: tickets/models/ticket/apply_application.py:30 #: tickets/models/ticket/apply_application.py:30
#: tickets/models/ticket/apply_asset.py:19 #: tickets/models/ticket/apply_asset.py:19
@ -417,7 +417,7 @@ msgstr "开始日期"
#: accounts/models/automations/change_secret.py:91 #: accounts/models/automations/change_secret.py:91
#: assets/models/automations/base.py:116 ops/models/base.py:56 #: assets/models/automations/base.py:116 ops/models/base.py:56
#: ops/models/celery.py:64 ops/models/job.py:222 #: ops/models/celery.py:64 ops/models/job.py:222
#: terminal/models/applet/host.py:140 #: terminal/models/applet/host.py:141
msgid "Date finished" msgid "Date finished"
msgstr "结束日期" msgstr "结束日期"
@ -762,7 +762,7 @@ msgstr ""
#: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26 #: assets/models/group.py:20 common/db/models.py:36 ops/models/adhoc.py:26
#: ops/models/job.py:138 ops/models/playbook.py:31 rbac/models/role.py:37 #: ops/models/job.py:138 ops/models/playbook.py:31 rbac/models/role.py:37
#: settings/models.py:37 terminal/models/applet/applet.py:44 #: settings/models.py:37 terminal/models/applet/applet.py:44
#: terminal/models/applet/applet.py:284 terminal/models/applet/host.py:141 #: terminal/models/applet/applet.py:284 terminal/models/applet/host.py:142
#: terminal/models/component/endpoint.py:24 #: terminal/models/component/endpoint.py:24
#: terminal/models/component/endpoint.py:104 #: terminal/models/component/endpoint.py:104
#: terminal/models/session/session.py:46 tickets/models/comment.py:32 #: terminal/models/session/session.py:46 tickets/models/comment.py:32
@ -1528,7 +1528,7 @@ msgstr "资产自动化任务"
#: assets/models/automations/base.py:113 audits/models.py:199 #: assets/models/automations/base.py:113 audits/models.py:199
#: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:213 #: audits/serializers.py:50 ops/models/base.py:49 ops/models/job.py:213
#: terminal/models/applet/applet.py:283 terminal/models/applet/host.py:138 #: terminal/models/applet/applet.py:283 terminal/models/applet/host.py:139
#: terminal/models/component/status.py:30 terminal/serializers/applet.py:18 #: terminal/models/component/status.py:30 terminal/serializers/applet.py:18
#: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283 #: terminal/serializers/applet_host.py:115 tickets/models/ticket/general.py:283
#: tickets/serializers/super_ticket.py:13 #: tickets/serializers/super_ticket.py:13
@ -2127,7 +2127,7 @@ msgstr "会话日志"
msgid "Login log" msgid "Login log"
msgstr "登录日志" msgstr "登录日志"
#: audits/const.py:43 terminal/models/applet/host.py:142 #: audits/const.py:43 terminal/models/applet/host.py:143
#: terminal/models/component/task.py:22 #: terminal/models/component/task.py:22
msgid "Task" msgid "Task"
msgstr "任务" msgstr "任务"
@ -5928,7 +5928,7 @@ msgid "Missing type in platform.yml"
msgstr "在 platform.yml 中缺少类型" msgstr "在 platform.yml 中缺少类型"
#: terminal/models/applet/applet.py:282 terminal/models/applet/host.py:35 #: terminal/models/applet/applet.py:282 terminal/models/applet/host.py:35
#: terminal/models/applet/host.py:136 #: terminal/models/applet/host.py:137
msgid "Hosting" msgid "Hosting"
msgstr "宿主机" msgstr "宿主机"
@ -5956,7 +5956,7 @@ msgstr "初始化日期"
msgid "Date synced" msgid "Date synced"
msgstr "同步日期" msgstr "同步日期"
#: terminal/models/applet/host.py:137 #: terminal/models/applet/host.py:138
msgid "Initial" msgid "Initial"
msgstr "初始化" msgstr "初始化"
@ -6853,7 +6853,11 @@ msgstr "无效的审批动作"
msgid "This user is not authorized to approve this ticket" msgid "This user is not authorized to approve this ticket"
msgstr "此用户无权审批此工单" msgstr "此用户无权审批此工单"
#: users/api/user.py:190 #: users/api/user.py:141
msgid "Can not invite self"
msgstr "不能邀请自己"
#: users/api/user.py:194
msgid "Could not reset self otp, use profile reset instead" msgid "Could not reset self otp, use profile reset instead"
msgstr "不能在该页面重置 MFA 多因子认证, 请去个人信息页面重置" msgstr "不能在该页面重置 MFA 多因子认证, 请去个人信息页面重置"

View File

@ -47,11 +47,9 @@ class UserGroupGrantedAssetsApi(ListAPIView):
granted_q |= Q(granted_by_permissions__id__in=asset_perm_ids) granted_q |= Q(granted_by_permissions__id__in=asset_perm_ids)
assets = Asset.objects.filter( assets = Asset.objects.filter(granted_q) \
granted_q .only(*self.only_fields) \
).distinct().only( .distinct()
*self.only_fields
)
return assets return assets

View File

@ -125,6 +125,7 @@ class AppletHost(Host):
from users.models import User from users.models import User
usernames = User.objects \ usernames = User.objects \
.filter(is_active=True, is_service_account=False) \ .filter(is_active=True, is_service_account=False) \
.exclude(username__startswith='[') \
.values_list('username', flat=True) .values_list('username', flat=True)
account_usernames = self.accounts.all().values_list('username', flat=True) account_usernames = self.accounts.all().values_list('username', flat=True)
account_usernames = [username[3:] for username in account_usernames if username.startswith('js_')] account_usernames = [username[3:] for username in account_usernames if username.startswith('js_')]

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
from .user import *
from .group import * from .group import *
from .profile import * from .profile import *
from .service_account import *
from .relation import * from .relation import *
from .service import *
from .user import *

View File

@ -136,6 +136,10 @@ class UserViewSet(CommonApiMixin, UserQuerysetMixin, SuggestionMixin, BulkModelV
users = validated_data['users'] users = validated_data['users']
org_roles = validated_data['org_roles'] org_roles = validated_data['org_roles']
has_self = any([str(u.id) == str(request.user.id) for u in users])
if has_self and not request.user.is_superuser:
error = {"error": _("Can not invite self")}
return Response(error, status=400)
for user in users: for user in users:
user.org_roles.set(org_roles) user.org_roles.set(org_roles)
return Response(serializer.data, status=201) return Response(serializer.data, status=201)