fix: 修复 ldap 用户登录时邮箱存在 500 的问题

pull/9847/head
Bai 2023-03-02 15:54:41 +08:00 committed by Jiangjie.Bai
parent 6bc2f73f49
commit 1901ef7252
3 changed files with 127 additions and 121 deletions

View File

@ -6,6 +6,7 @@ import os
import datetime import datetime
from typing import Callable from typing import Callable
from django.db import IntegrityError
from django.templatetags.static import static from django.templatetags.static import static
from django.contrib.auth import login as auth_login, logout as auth_logout from django.contrib.auth import login as auth_login, logout as auth_logout
from django.http import HttpResponse, HttpRequest from django.http import HttpResponse, HttpRequest
@ -229,6 +230,16 @@ class UserLoginView(mixins.AuthMixin, UserLoginContextMixin, FormView):
) as e: ) as e:
form.add_error('code', e.msg) form.add_error('code', e.msg)
return super().form_invalid(form) return super().form_invalid(form)
except (IntegrityError,) as e:
# (1062, "Duplicate entry 'youtester001@example.com' for key 'users_user.email'")
msg_list = e.args[1].split("'")
email, field = msg_list[1], msg_list[3]
if field == 'users_user.email':
error = _('User email already exists ({})').format(email)
else:
error = str(e)
form.add_error(None, error)
return super().form_invalid(form)
self.clear_rsa_key() self.clear_rsa_key()
return self.redirect_to_guard_view() return self.redirect_to_guard_view()

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-03-01 15:09+0800\n" "POT-Creation-Date: 2023-03-02 15:34+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"
@ -741,7 +741,7 @@ msgstr "アクティブ"
#: authentication/models/sso_token.py:16 #: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12 #: notifications/models/notification.py:12
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58
#: perms/serializers/permission.py:23 rbac/builtin.py:121 #: perms/serializers/permission.py:23 rbac/builtin.py:122
#: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19 #: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19
#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32 #: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32
#: terminal/notifications.py:96 terminal/notifications.py:144 #: terminal/notifications.py:96 terminal/notifications.py:144
@ -828,7 +828,7 @@ msgstr ""
"192.168.10.1、192.168.1.0/24、10.1.1.1-10.1.1.20、2001:db8:2de::e13、2001:" "192.168.10.1、192.168.1.0/24、10.1.1.1-10.1.1.20、2001:db8:2de::e13、2001:"
"db8:1a:1110:::/64 (ドメイン名サポート)" "db8:1a:1110:::/64 (ドメイン名サポート)"
#: acls/serializers/base.py:40 assets/serializers/asset/host.py:36 #: acls/serializers/base.py:40 assets/serializers/asset/host.py:35
msgid "IP/Host" msgid "IP/Host"
msgstr "IP/ホスト" msgstr "IP/ホスト"
@ -944,10 +944,8 @@ msgid "No account"
msgstr "アカウントなし" msgstr "アカウントなし"
#: assets/automations/ping_gateway/manager.py:36 #: assets/automations/ping_gateway/manager.py:36
#, fuzzy
#| msgid "Assets amount"
msgid "Asset, {}, using account {}" msgid "Asset, {}, using account {}"
msgstr "資産" msgstr "資産, {}, アカウントを使用 {}"
#: assets/automations/ping_gateway/manager.py:55 #: assets/automations/ping_gateway/manager.py:55
#, python-brace-format #, python-brace-format
@ -1011,6 +1009,18 @@ msgstr "クラウド サービス"
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
#: assets/const/cloud.py:7
msgid "Public cloud"
msgstr "パブリック クラウド"
#: assets/const/cloud.py:8
msgid "Private cloud"
msgstr "私有雲"
#: assets/const/cloud.py:9
msgid "Kubernetes"
msgstr ""
#: assets/const/device.py:7 terminal/models/applet/applet.py:24 #: assets/const/device.py:7 terminal/models/applet/applet.py:24
#: tickets/const.py:8 #: tickets/const.py:8
msgid "General" msgid "General"
@ -1028,6 +1038,10 @@ msgstr "ルーター"
msgid "Firewall" msgid "Firewall"
msgstr "ファイアウォール" msgstr "ファイアウォール"
#: assets/const/host.py:12 rbac/tree.py:28
msgid "Other"
msgstr "その他"
#: assets/const/types.py:200 #: assets/const/types.py:200
msgid "All types" msgid "All types"
msgstr "いろんなタイプ" msgstr "いろんなタイプ"
@ -1524,56 +1538,56 @@ msgstr "プロトコルが必要です: {}"
msgid "This field is required." msgid "This field is required."
msgstr "このフィールドは必須です。" msgstr "このフィールドは必須です。"
#: assets/serializers/asset/host.py:12 #: assets/serializers/asset/host.py:11
msgid "Vendor" msgid "Vendor"
msgstr "ベンダー" msgstr "ベンダー"
#: assets/serializers/asset/host.py:13 #: assets/serializers/asset/host.py:12
msgid "Model" msgid "Model"
msgstr "モデル" msgstr "モデル"
#: assets/serializers/asset/host.py:14 tickets/models/ticket/general.py:299 #: assets/serializers/asset/host.py:13 tickets/models/ticket/general.py:299
msgid "Serial number" msgid "Serial number"
msgstr "シリアル番号" msgstr "シリアル番号"
#: assets/serializers/asset/host.py:15 #: assets/serializers/asset/host.py:14
msgid "CPU model" msgid "CPU model"
msgstr "CPU モデル" msgstr "CPU モデル"
#: assets/serializers/asset/host.py:16 #: assets/serializers/asset/host.py:15
msgid "CPU count" msgid "CPU count"
msgstr "CPU カウント" msgstr "CPU カウント"
#: assets/serializers/asset/host.py:17 #: assets/serializers/asset/host.py:16
msgid "CPU cores" msgid "CPU cores"
msgstr "CPU カラー" msgstr "CPU カラー"
#: assets/serializers/asset/host.py:18 #: assets/serializers/asset/host.py:17
msgid "CPU vcpus" msgid "CPU vcpus"
msgstr "CPU 合計" msgstr "CPU 合計"
#: assets/serializers/asset/host.py:19 #: assets/serializers/asset/host.py:18
msgid "Memory" msgid "Memory"
msgstr "メモリ" msgstr "メモリ"
#: assets/serializers/asset/host.py:20 #: assets/serializers/asset/host.py:19
msgid "Disk total" msgid "Disk total"
msgstr "ディスクの合計" msgstr "ディスクの合計"
#: assets/serializers/asset/host.py:22 #: assets/serializers/asset/host.py:21
#: authentication/serializers/connect_token_secret.py:105 #: authentication/serializers/connect_token_secret.py:105
msgid "OS" msgid "OS"
msgstr "OS" msgstr "OS"
#: assets/serializers/asset/host.py:23 #: assets/serializers/asset/host.py:22
msgid "OS version" msgid "OS version"
msgstr "システムバージョン" msgstr "システムバージョン"
#: assets/serializers/asset/host.py:24 #: assets/serializers/asset/host.py:23
msgid "OS arch" msgid "OS arch"
msgstr "システムアーキテクチャ" msgstr "システムアーキテクチャ"
#: assets/serializers/asset/host.py:28 #: assets/serializers/asset/host.py:27
msgid "Info" msgid "Info"
msgstr "情報" msgstr "情報"
@ -1940,20 +1954,20 @@ msgid "Auth Token"
msgstr "認証トークン" msgstr "認証トークン"
#: audits/signal_handlers/login_log.py:31 authentication/notifications.py:73 #: audits/signal_handlers/login_log.py:31 authentication/notifications.py:73
#: authentication/views/login.py:73 authentication/views/wecom.py:177 #: authentication/views/login.py:74 authentication/views/wecom.py:177
#: notifications/backends/__init__.py:11 settings/serializers/auth/wecom.py:10 #: notifications/backends/__init__.py:11 settings/serializers/auth/wecom.py:10
#: users/models/user.py:778 #: users/models/user.py:778
msgid "WeCom" msgid "WeCom"
msgstr "企業微信" msgstr "企業微信"
#: audits/signal_handlers/login_log.py:32 authentication/views/feishu.py:144 #: audits/signal_handlers/login_log.py:32 authentication/views/feishu.py:144
#: authentication/views/login.py:85 notifications/backends/__init__.py:14 #: authentication/views/login.py:86 notifications/backends/__init__.py:14
#: settings/serializers/auth/feishu.py:10 users/models/user.py:780 #: settings/serializers/auth/feishu.py:10 users/models/user.py:780
msgid "FeiShu" msgid "FeiShu"
msgstr "本を飛ばす" msgstr "本を飛ばす"
#: audits/signal_handlers/login_log.py:33 authentication/views/dingtalk.py:179 #: audits/signal_handlers/login_log.py:33 authentication/views/dingtalk.py:179
#: authentication/views/login.py:79 notifications/backends/__init__.py:12 #: authentication/views/login.py:80 notifications/backends/__init__.py:12
#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:779 #: settings/serializers/auth/dingtalk.py:10 users/models/user.py:779
msgid "DingTalk" msgid "DingTalk"
msgstr "DingTalk" msgstr "DingTalk"
@ -2812,19 +2826,23 @@ msgstr "本を飛ばすからユーザーを取得できませんでした"
msgid "Please login with a password and then bind the FeiShu" msgid "Please login with a password and then bind the FeiShu"
msgstr "パスワードでログインしてから本を飛ばすをバインドしてください" msgstr "パスワードでログインしてから本を飛ばすをバインドしてください"
#: authentication/views/login.py:181 #: authentication/views/login.py:182
msgid "Redirecting" msgid "Redirecting"
msgstr "リダイレクト" msgstr "リダイレクト"
#: authentication/views/login.py:182 #: authentication/views/login.py:183
msgid "Redirecting to {} authentication" msgid "Redirecting to {} authentication"
msgstr "{} 認証へのリダイレクト" msgstr "{} 認証へのリダイレクト"
#: authentication/views/login.py:205 #: authentication/views/login.py:206
msgid "Please enable cookies and try again." msgid "Please enable cookies and try again."
msgstr "クッキーを有効にして、もう一度お試しください。" msgstr "クッキーを有効にして、もう一度お試しください。"
#: authentication/views/login.py:307 #: authentication/views/login.py:238
msgid "User email already exists ({})"
msgstr "ユーザー メールボックスは既に存在します ({})"
#: authentication/views/login.py:318
msgid "" msgid ""
"Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n" "Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n"
" Don't close this page" " Don't close this page"
@ -2832,15 +2850,15 @@ msgstr ""
"<b>{}</b> 確認を待ちます。彼女/彼へのリンクをコピーすることもできます <br/>\n" "<b>{}</b> 確認を待ちます。彼女/彼へのリンクをコピーすることもできます <br/>\n"
" このページを閉じないでください" " このページを閉じないでください"
#: authentication/views/login.py:312 #: authentication/views/login.py:323
msgid "No ticket found" msgid "No ticket found"
msgstr "チケットが見つかりません" msgstr "チケットが見つかりません"
#: authentication/views/login.py:348 #: authentication/views/login.py:359
msgid "Logout success" msgid "Logout success"
msgstr "ログアウト成功" msgstr "ログアウト成功"
#: authentication/views/login.py:349 #: authentication/views/login.py:360
msgid "Logout success, return login page" msgid "Logout success, return login page"
msgstr "ログアウト成功、ログインページを返す" msgstr "ログアウト成功、ログインページを返す"
@ -3747,27 +3765,27 @@ msgstr "{} 少なくとも1つのシステムロール"
msgid "RBAC" msgid "RBAC"
msgstr "RBAC" msgstr "RBAC"
#: rbac/builtin.py:112 #: rbac/builtin.py:113
msgid "SystemAdmin" msgid "SystemAdmin"
msgstr "システム管理者" msgstr "システム管理者"
#: rbac/builtin.py:115 #: rbac/builtin.py:116
msgid "SystemAuditor" msgid "SystemAuditor"
msgstr "システム監査人" msgstr "システム監査人"
#: rbac/builtin.py:118 #: rbac/builtin.py:119
msgid "SystemComponent" msgid "SystemComponent"
msgstr "システムコンポーネント" msgstr "システムコンポーネント"
#: rbac/builtin.py:124 #: rbac/builtin.py:125
msgid "OrgAdmin" msgid "OrgAdmin"
msgstr "組織管理者" msgstr "組織管理者"
#: rbac/builtin.py:127 #: rbac/builtin.py:128
msgid "OrgAuditor" msgid "OrgAuditor"
msgstr "監査員を組織する" msgstr "監査員を組織する"
#: rbac/builtin.py:130 #: rbac/builtin.py:131
msgid "OrgUser" msgid "OrgUser"
msgstr "組織ユーザー" msgstr "組織ユーザー"
@ -3880,10 +3898,6 @@ msgstr "監査ビュー"
msgid "System setting" msgid "System setting"
msgstr "システム設定" msgstr "システム設定"
#: rbac/tree.py:28
msgid "Other"
msgstr "その他"
#: rbac/tree.py:37 #: rbac/tree.py:37
msgid "Session audits" msgid "Session audits"
msgstr "セッション監査" msgstr "セッション監査"
@ -5725,7 +5739,7 @@ msgstr "コア サービス アドレス"
#: terminal/serializers/applet_host.py:34 #: terminal/serializers/applet_host.py:34
msgid "" msgid ""
" \n" " \n"
" Tip: The application release machine communicates with the Core " " Tips: The application release machine communicates with the Core "
"service. \n" "service. \n"
" If the release machine and the Core service are on the same network " " If the release machine and the Core service are on the same network "
"segment, \n" "segment, \n"
@ -5735,15 +5749,15 @@ msgid ""
" eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n"
" " " "
msgstr "" msgstr ""
"ヒント: アプリケーション リリース マシンは、コア サービスと通信します。" "ヒント: アプリケーション リリース マシンは、コア サービスと通信します。リリー"
"リリース マシンとコア サービスが同じネットワーク セグメント上にある場合は、イントラネット アドレスを入力することをお勧めします。" "ス マシンとコア サービスが同じネットワーク セグメント上にある場合は、イントラ"
"それ以外の場合は、現在のサイト URL を入力します。" "ネット アドレスを入力することをお勧めします。それ以外の場合は、現在のサイト "
"<br>" "URL を入力します。<br>例: https://172.16.10.110 または https://dev."
"例: https://172.16.10.110 または https://dev.jumpserver.com" "jumpserver.com"
#: terminal/serializers/applet_host.py:42 #: terminal/serializers/applet_host.py:42
msgid "Existing RDS license" msgid "Existing RDS license"
msgstr "" msgstr "既存の RDS 証明書"
#: terminal/serializers/applet_host.py:43 #: terminal/serializers/applet_host.py:43
msgid "RDS License Server" msgid "RDS License Server"
@ -7413,36 +7427,3 @@ msgstr "究極のエディション"
#: xpack/plugins/license/models.py:85 #: xpack/plugins/license/models.py:85
msgid "Community edition" msgid "Community edition"
msgstr "コミュニティ版" msgstr "コミュニティ版"
#~ msgid "API Server"
#~ msgstr "API 仕える"
#~ msgid "RDS Licensing"
#~ msgstr "既存の RDS ライセンス"
#, fuzzy
#~| msgid "Only admin users"
#~ msgid "Unix admin user"
#~ msgstr "管理者のみ"
#, fuzzy
#~| msgid "Only admin users"
#~ msgid "Windows admin user"
#~ msgstr "管理者のみ"
#, fuzzy
#~| msgid "Only admin users"
#~ msgid "Linux admin user"
#~ msgstr "管理者のみ"
#~ msgid "Can push account to asset"
#~ msgstr "アカウントをアセットにプッシュできます"
#~ msgid "Add asset to node"
#~ msgstr "ノードにアセットを追加する"
#~ msgid "Move asset to node"
#~ msgstr "アセットをノードに移動する"
#~ msgid "Remove asset from node"
#~ msgstr "ノードからアセットを削除"

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-03-01 15:09+0800\n" "POT-Creation-Date: 2023-03-02 15:34+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"
@ -737,7 +737,7 @@ msgstr "激活中"
#: authentication/models/sso_token.py:16 #: authentication/models/sso_token.py:16
#: notifications/models/notification.py:12 #: notifications/models/notification.py:12
#: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58
#: perms/serializers/permission.py:23 rbac/builtin.py:121 #: perms/serializers/permission.py:23 rbac/builtin.py:122
#: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19 #: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19
#: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32 #: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32
#: terminal/notifications.py:96 terminal/notifications.py:144 #: terminal/notifications.py:96 terminal/notifications.py:144
@ -823,7 +823,7 @@ msgstr ""
"格式为逗号分隔的字符串, * 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, " "格式为逗号分隔的字符串, * 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, "
"10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)" "10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64 (支持网域)"
#: acls/serializers/base.py:40 assets/serializers/asset/host.py:36 #: acls/serializers/base.py:40 assets/serializers/asset/host.py:35
msgid "IP/Host" msgid "IP/Host"
msgstr "IP/主机" msgstr "IP/主机"
@ -936,10 +936,8 @@ msgid "No account"
msgstr "没有账号" msgstr "没有账号"
#: assets/automations/ping_gateway/manager.py:36 #: assets/automations/ping_gateway/manager.py:36
#, fuzzy
#| msgid "Assets amount"
msgid "Asset, {}, using account {}" msgid "Asset, {}, using account {}"
msgstr "资产数量" msgstr "资产, {}, 使用账号 {}"
#: assets/automations/ping_gateway/manager.py:55 #: assets/automations/ping_gateway/manager.py:55
#, python-brace-format #, python-brace-format
@ -1003,6 +1001,18 @@ msgstr "云服务"
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
#: assets/const/cloud.py:7
msgid "Public cloud"
msgstr "公有云"
#: assets/const/cloud.py:8
msgid "Private cloud"
msgstr "私有云"
#: assets/const/cloud.py:9
msgid "Kubernetes"
msgstr ""
#: assets/const/device.py:7 terminal/models/applet/applet.py:24 #: assets/const/device.py:7 terminal/models/applet/applet.py:24
#: tickets/const.py:8 #: tickets/const.py:8
msgid "General" msgid "General"
@ -1020,6 +1030,10 @@ msgstr "路由器"
msgid "Firewall" msgid "Firewall"
msgstr "防火墙" msgstr "防火墙"
#: assets/const/host.py:12 rbac/tree.py:28
msgid "Other"
msgstr "其它"
#: assets/const/types.py:200 #: assets/const/types.py:200
msgid "All types" msgid "All types"
msgstr "所有类型" msgstr "所有类型"
@ -1516,56 +1530,56 @@ msgstr "协议是必填的: {}"
msgid "This field is required." msgid "This field is required."
msgstr "该字段是必填项。" msgstr "该字段是必填项。"
#: assets/serializers/asset/host.py:12 #: assets/serializers/asset/host.py:11
msgid "Vendor" msgid "Vendor"
msgstr "制造商" msgstr "制造商"
#: assets/serializers/asset/host.py:13 #: assets/serializers/asset/host.py:12
msgid "Model" msgid "Model"
msgstr "型号" msgstr "型号"
#: assets/serializers/asset/host.py:14 tickets/models/ticket/general.py:299 #: assets/serializers/asset/host.py:13 tickets/models/ticket/general.py:299
msgid "Serial number" msgid "Serial number"
msgstr "序列号" msgstr "序列号"
#: assets/serializers/asset/host.py:15 #: assets/serializers/asset/host.py:14
msgid "CPU model" msgid "CPU model"
msgstr "CPU型号" msgstr "CPU型号"
#: assets/serializers/asset/host.py:16 #: assets/serializers/asset/host.py:15
msgid "CPU count" msgid "CPU count"
msgstr "CPU数量" msgstr "CPU数量"
#: assets/serializers/asset/host.py:17 #: assets/serializers/asset/host.py:16
msgid "CPU cores" msgid "CPU cores"
msgstr "CPU核数" msgstr "CPU核数"
#: assets/serializers/asset/host.py:18 #: assets/serializers/asset/host.py:17
msgid "CPU vcpus" msgid "CPU vcpus"
msgstr "CPU总数" msgstr "CPU总数"
#: assets/serializers/asset/host.py:19 #: assets/serializers/asset/host.py:18
msgid "Memory" msgid "Memory"
msgstr "内存" msgstr "内存"
#: assets/serializers/asset/host.py:20 #: assets/serializers/asset/host.py:19
msgid "Disk total" msgid "Disk total"
msgstr "硬盘大小" msgstr "硬盘大小"
#: assets/serializers/asset/host.py:22 #: assets/serializers/asset/host.py:21
#: authentication/serializers/connect_token_secret.py:105 #: authentication/serializers/connect_token_secret.py:105
msgid "OS" msgid "OS"
msgstr "操作系统" msgstr "操作系统"
#: assets/serializers/asset/host.py:23 #: assets/serializers/asset/host.py:22
msgid "OS version" msgid "OS version"
msgstr "系统版本" msgstr "系统版本"
#: assets/serializers/asset/host.py:24 #: assets/serializers/asset/host.py:23
msgid "OS arch" msgid "OS arch"
msgstr "系统架构" msgstr "系统架构"
#: assets/serializers/asset/host.py:28 #: assets/serializers/asset/host.py:27
msgid "Info" msgid "Info"
msgstr "信息" msgstr "信息"
@ -1930,20 +1944,20 @@ msgid "Auth Token"
msgstr "认证令牌" msgstr "认证令牌"
#: audits/signal_handlers/login_log.py:31 authentication/notifications.py:73 #: audits/signal_handlers/login_log.py:31 authentication/notifications.py:73
#: authentication/views/login.py:73 authentication/views/wecom.py:177 #: authentication/views/login.py:74 authentication/views/wecom.py:177
#: notifications/backends/__init__.py:11 settings/serializers/auth/wecom.py:10 #: notifications/backends/__init__.py:11 settings/serializers/auth/wecom.py:10
#: users/models/user.py:778 #: users/models/user.py:778
msgid "WeCom" msgid "WeCom"
msgstr "企业微信" msgstr "企业微信"
#: audits/signal_handlers/login_log.py:32 authentication/views/feishu.py:144 #: audits/signal_handlers/login_log.py:32 authentication/views/feishu.py:144
#: authentication/views/login.py:85 notifications/backends/__init__.py:14 #: authentication/views/login.py:86 notifications/backends/__init__.py:14
#: settings/serializers/auth/feishu.py:10 users/models/user.py:780 #: settings/serializers/auth/feishu.py:10 users/models/user.py:780
msgid "FeiShu" msgid "FeiShu"
msgstr "飞书" msgstr "飞书"
#: audits/signal_handlers/login_log.py:33 authentication/views/dingtalk.py:179 #: audits/signal_handlers/login_log.py:33 authentication/views/dingtalk.py:179
#: authentication/views/login.py:79 notifications/backends/__init__.py:12 #: authentication/views/login.py:80 notifications/backends/__init__.py:12
#: settings/serializers/auth/dingtalk.py:10 users/models/user.py:779 #: settings/serializers/auth/dingtalk.py:10 users/models/user.py:779
msgid "DingTalk" msgid "DingTalk"
msgstr "钉钉" msgstr "钉钉"
@ -2782,19 +2796,23 @@ msgstr "从飞书获取用户失败"
msgid "Please login with a password and then bind the FeiShu" msgid "Please login with a password and then bind the FeiShu"
msgstr "请使用密码登录,然后绑定飞书" msgstr "请使用密码登录,然后绑定飞书"
#: authentication/views/login.py:181 #: authentication/views/login.py:182
msgid "Redirecting" msgid "Redirecting"
msgstr "跳转中" msgstr "跳转中"
#: authentication/views/login.py:182 #: authentication/views/login.py:183
msgid "Redirecting to {} authentication" msgid "Redirecting to {} authentication"
msgstr "正在跳转到 {} 认证" msgstr "正在跳转到 {} 认证"
#: authentication/views/login.py:205 #: authentication/views/login.py:206
msgid "Please enable cookies and try again." msgid "Please enable cookies and try again."
msgstr "设置你的浏览器支持cookie" msgstr "设置你的浏览器支持cookie"
#: authentication/views/login.py:307 #: authentication/views/login.py:238
msgid "User email already exists ({})"
msgstr "用户邮箱已存在 ({})"
#: authentication/views/login.py:318
msgid "" msgid ""
"Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n" "Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n"
" Don't close this page" " Don't close this page"
@ -2802,15 +2820,15 @@ msgstr ""
"等待 <b>{}</b> 确认, 你也可以复制链接发给他/她 <br/>\n" "等待 <b>{}</b> 确认, 你也可以复制链接发给他/她 <br/>\n"
" 不要关闭本页面" " 不要关闭本页面"
#: authentication/views/login.py:312 #: authentication/views/login.py:323
msgid "No ticket found" msgid "No ticket found"
msgstr "没有发现工单" msgstr "没有发现工单"
#: authentication/views/login.py:348 #: authentication/views/login.py:359
msgid "Logout success" msgid "Logout success"
msgstr "退出登录成功" msgstr "退出登录成功"
#: authentication/views/login.py:349 #: authentication/views/login.py:360
msgid "Logout success, return login page" msgid "Logout success, return login page"
msgstr "退出登录成功,返回到登录页面" msgstr "退出登录成功,返回到登录页面"
@ -3711,27 +3729,27 @@ msgstr "{} 至少有一个系统角色"
msgid "RBAC" msgid "RBAC"
msgstr "RBAC" msgstr "RBAC"
#: rbac/builtin.py:112 #: rbac/builtin.py:113
msgid "SystemAdmin" msgid "SystemAdmin"
msgstr "系统管理员" msgstr "系统管理员"
#: rbac/builtin.py:115 #: rbac/builtin.py:116
msgid "SystemAuditor" msgid "SystemAuditor"
msgstr "系统审计员" msgstr "系统审计员"
#: rbac/builtin.py:118 #: rbac/builtin.py:119
msgid "SystemComponent" msgid "SystemComponent"
msgstr "系统组件" msgstr "系统组件"
#: rbac/builtin.py:124 #: rbac/builtin.py:125
msgid "OrgAdmin" msgid "OrgAdmin"
msgstr "组织管理员" msgstr "组织管理员"
#: rbac/builtin.py:127 #: rbac/builtin.py:128
msgid "OrgAuditor" msgid "OrgAuditor"
msgstr "组织审计员" msgstr "组织审计员"
#: rbac/builtin.py:130 #: rbac/builtin.py:131
msgid "OrgUser" msgid "OrgUser"
msgstr "组织用户" msgstr "组织用户"
@ -3843,10 +3861,6 @@ msgstr "审计台"
msgid "System setting" msgid "System setting"
msgstr "系统设置" msgstr "系统设置"
#: rbac/tree.py:28
msgid "Other"
msgstr "其它"
#: rbac/tree.py:37 #: rbac/tree.py:37
msgid "Session audits" msgid "Session audits"
msgstr "会话审计" msgstr "会话审计"
@ -5663,9 +5677,9 @@ msgid ""
" eg: https://172.16.10.110 or https://dev.jumpserver.com\n" " eg: https://172.16.10.110 or https://dev.jumpserver.com\n"
" " " "
msgstr "" msgstr ""
"提示:应用发布机和 Core 服务进行通信使用,如果发布机和 Core 服务在同一网段,建议填写内网地址,否则填写当前站点 URL" "提示:应用发布机和 Core 服务进行通信使用,如果发布机和 Core 服务在同一网段,"
"<br>" "建议填写内网地址,否则填写当前站点 URL<br>例如https://172.16.10.110 or "
"例如https://172.16.10.110 or https://dev.jumpserver.com" "https://dev.jumpserver.com"
#: terminal/serializers/applet_host.py:42 #: terminal/serializers/applet_host.py:42
msgid "Existing RDS license" msgid "Existing RDS license"