diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index d2eb26ca7..c446508f1 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -357,6 +357,7 @@ EMAIL_PORT = 25 EMAIL_HOST_USER = 'noreply@jumpserver.org' EMAIL_HOST_PASSWORD = '' EMAIL_FROM = '' +EMAIL_RECIPIENT = '' EMAIL_USE_SSL = False EMAIL_USE_TLS = False EMAIL_SUBJECT_PREFIX = '[JMS] ' diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 6701de0ac..4d853714e 100644 Binary files a/apps/locale/zh/LC_MESSAGES/django.mo and b/apps/locale/zh/LC_MESSAGES/django.mo differ diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index a12df41ac..4240cb36f 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Jumpserver 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-25 15:11+0800\n" +"POT-Creation-Date: 2019-10-08 17:09+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -86,11 +86,11 @@ msgstr "运行参数" #: assets/templates/assets/system_user_list.html:55 audits/models.py:19 #: audits/templates/audits/ftp_log_list.html:44 #: audits/templates/audits/ftp_log_list.html:74 -#: perms/forms/asset_permission.py:79 perms/models/asset_permission.py:80 +#: perms/forms/asset_permission.py:80 perms/models/asset_permission.py:80 #: perms/templates/perms/asset_permission_create_update.html:45 #: perms/templates/perms/asset_permission_list.html:52 #: perms/templates/perms/asset_permission_list.html:121 -#: terminal/backends/command/models.py:13 terminal/models.py:156 +#: terminal/backends/command/models.py:13 terminal/models.py:157 #: terminal/templates/terminal/command_list.html:30 #: terminal/templates/terminal/command_list.html:66 #: terminal/templates/terminal/session_list.html:28 @@ -127,7 +127,7 @@ msgstr "资产" #: assets/templates/assets/system_user_detail.html:58 #: assets/templates/assets/system_user_list.html:51 ops/models/adhoc.py:37 #: ops/templates/ops/task_detail.html:60 ops/templates/ops/task_list.html:11 -#: orgs/models.py:11 perms/models/base.py:48 +#: orgs/models.py:12 perms/models/base.py:48 #: perms/templates/perms/asset_permission_detail.html:62 #: perms/templates/perms/asset_permission_list.html:49 #: perms/templates/perms/asset_permission_list.html:68 @@ -141,8 +141,8 @@ msgstr "资产" #: settings/templates/settings/command_storage_create.html:41 #: settings/templates/settings/replay_storage_create.html:44 #: settings/templates/settings/terminal_setting.html:83 -#: settings/templates/settings/terminal_setting.html:105 terminal/models.py:22 -#: terminal/models.py:259 terminal/templates/terminal/terminal_detail.html:43 +#: settings/templates/settings/terminal_setting.html:105 terminal/models.py:23 +#: terminal/models.py:260 terminal/templates/terminal/terminal_detail.html:43 #: terminal/templates/terminal/terminal_list.html:29 users/models/group.py:14 #: users/models/user.py:373 users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_detail.html:63 @@ -193,7 +193,7 @@ msgstr "参数" #: assets/templates/assets/cmd_filter_detail.html:77 #: assets/templates/assets/domain_detail.html:72 #: assets/templates/assets/system_user_detail.html:100 -#: ops/templates/ops/adhoc_detail.html:86 orgs/models.py:15 +#: ops/templates/ops/adhoc_detail.html:86 orgs/models.py:16 #: perms/models/base.py:54 #: perms/templates/perms/asset_permission_detail.html:98 #: perms/templates/perms/remote_app_permission_detail.html:90 @@ -218,7 +218,7 @@ msgstr "创建者" #: assets/templates/assets/domain_detail.html:68 #: assets/templates/assets/system_user_detail.html:96 ops/models/adhoc.py:45 #: ops/templates/ops/adhoc_detail.html:90 ops/templates/ops/task_detail.html:64 -#: orgs/models.py:16 perms/models/base.py:55 +#: orgs/models.py:17 perms/models/base.py:55 #: perms/templates/perms/asset_permission_detail.html:94 #: perms/templates/perms/remote_app_permission_detail.html:86 #: terminal/templates/terminal/terminal_detail.html:59 users/models/group.py:17 @@ -252,10 +252,10 @@ msgstr "创建日期" #: assets/templates/assets/domain_list.html:28 #: assets/templates/assets/system_user_detail.html:104 #: assets/templates/assets/system_user_list.html:59 ops/models/adhoc.py:43 -#: orgs/models.py:17 perms/models/base.py:56 +#: orgs/models.py:18 perms/models/base.py:56 #: perms/templates/perms/asset_permission_detail.html:102 #: perms/templates/perms/remote_app_permission_detail.html:94 -#: settings/models.py:34 terminal/models.py:32 +#: settings/models.py:34 terminal/models.py:33 #: terminal/templates/terminal/terminal_detail.html:63 users/models/group.py:15 #: users/models/user.py:406 users/templates/users/user_detail.html:129 #: users/templates/users/user_group_detail.html:67 @@ -275,7 +275,7 @@ msgstr "创建日期" msgid "Comment" msgstr "备注" -#: applications/models/remote_app.py:49 perms/forms/remote_app_permission.py:37 +#: applications/models/remote_app.py:49 perms/forms/remote_app_permission.py:40 #: perms/models/remote_app_permission.py:15 #: perms/templates/perms/remote_app_permission_create_update.html:48 #: perms/templates/perms/remote_app_permission_detail.html:27 @@ -390,7 +390,7 @@ msgstr "详情" #: applications/templates/applications/remote_app_detail.html:21 #: applications/templates/applications/remote_app_list.html:54 -#: assets/templates/assets/_asset_user_list.html:69 +#: assets/templates/assets/_asset_user_list.html:74 #: assets/templates/assets/admin_user_detail.html:24 #: assets/templates/assets/admin_user_list.html:26 #: assets/templates/assets/admin_user_list.html:111 @@ -452,7 +452,7 @@ msgstr "更新" #: assets/templates/assets/label_list.html:40 #: assets/templates/assets/system_user_detail.html:30 #: assets/templates/assets/system_user_list.html:86 audits/models.py:34 -#: authentication/templates/authentication/_access_key_modal.html:64 +#: authentication/templates/authentication/_access_key_modal.html:65 #: ops/templates/ops/task_list.html:69 #: perms/templates/perms/asset_permission_detail.html:34 #: perms/templates/perms/asset_permission_list.html:179 @@ -499,7 +499,7 @@ msgstr "创建远程应用" #: applications/templates/applications/remote_app_list.html:24 #: applications/templates/applications/user_remote_app_list.html:20 #: assets/models/cmd_filter.py:54 -#: assets/templates/assets/_asset_user_list.html:20 +#: assets/templates/assets/_asset_user_list.html:25 #: assets/templates/assets/admin_user_list.html:51 #: assets/templates/assets/asset_list.html:100 #: assets/templates/assets/cmd_filter_list.html:28 @@ -510,7 +510,7 @@ msgstr "创建远程应用" #: assets/templates/assets/system_user_list.html:60 audits/models.py:38 #: audits/templates/audits/operate_log_list.html:47 #: audits/templates/audits/operate_log_list.html:73 -#: authentication/templates/authentication/_access_key_modal.html:33 +#: authentication/templates/authentication/_access_key_modal.html:34 #: ops/templates/ops/adhoc_history.html:59 ops/templates/ops/task_adhoc.html:64 #: ops/templates/ops/task_history.html:65 ops/templates/ops/task_list.html:18 #: perms/forms/asset_permission.py:21 @@ -624,9 +624,9 @@ msgid "Domain" msgstr "网域" #: assets/forms/asset.py:72 assets/forms/asset.py:106 assets/forms/asset.py:119 -#: assets/forms/asset.py:155 assets/models/node.py:413 +#: assets/forms/asset.py:155 assets/models/node.py:409 #: assets/templates/assets/asset_create.html:42 -#: perms/forms/asset_permission.py:82 perms/forms/asset_permission.py:89 +#: perms/forms/asset_permission.py:83 perms/forms/asset_permission.py:90 #: perms/templates/perms/asset_permission_list.html:53 #: perms/templates/perms/asset_permission_list.html:74 #: perms/templates/perms/asset_permission_list.html:124 @@ -680,7 +680,7 @@ msgstr "SSH网关,支持代理SSH,RDP和VNC" #: assets/models/base.py:29 assets/models/gathered_user.py:16 #: assets/templates/assets/_asset_user_auth_update_modal.html:15 #: assets/templates/assets/_asset_user_auth_view_modal.html:21 -#: assets/templates/assets/_asset_user_list.html:16 +#: assets/templates/assets/_asset_user_list.html:21 #: assets/templates/assets/admin_user_detail.html:60 #: assets/templates/assets/admin_user_list.html:45 #: assets/templates/assets/domain_gateway_list.html:71 @@ -719,7 +719,7 @@ msgstr "密码或密钥密码" #: authentication/forms.py:15 #: authentication/templates/authentication/login.html:68 #: authentication/templates/authentication/new_login.html:95 -#: settings/forms.py:110 users/forms.py:16 users/forms.py:28 +#: settings/forms.py:114 users/forms.py:16 users/forms.py:28 #: users/templates/users/reset_password.html:53 #: users/templates/users/user_password_authentication.html:18 #: users/templates/users/user_password_update.html:44 @@ -776,13 +776,13 @@ msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig" #: assets/models/asset.py:135 assets/models/domain.py:49 #: assets/serializers/asset_user.py:28 #: assets/templates/assets/_asset_list_modal.html:47 -#: assets/templates/assets/_asset_user_list.html:15 +#: assets/templates/assets/_asset_user_list.html:20 #: assets/templates/assets/asset_detail.html:64 #: assets/templates/assets/asset_list.html:97 #: assets/templates/assets/domain_gateway_list.html:68 #: assets/templates/assets/user_asset_list.html:49 #: audits/templates/audits/login_log_list.html:60 -#: perms/templates/perms/asset_permission_asset.html:58 settings/forms.py:140 +#: perms/templates/perms/asset_permission_asset.html:58 settings/forms.py:144 #: users/templates/users/_granted_assets.html:26 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_asset_list.html:54 #: xpack/plugins/gathered_user/templates/gathered_user/gathered_user_list.html:73 @@ -794,12 +794,12 @@ msgstr "IP" #: assets/templates/assets/_asset_list_modal.html:46 #: assets/templates/assets/_asset_user_auth_update_modal.html:9 #: assets/templates/assets/_asset_user_auth_view_modal.html:15 -#: assets/templates/assets/_asset_user_list.html:14 +#: assets/templates/assets/_asset_user_list.html:19 #: assets/templates/assets/asset_detail.html:60 #: assets/templates/assets/asset_list.html:96 #: assets/templates/assets/user_asset_list.html:48 #: perms/templates/perms/asset_permission_asset.html:57 -#: perms/templates/perms/asset_permission_list.html:73 settings/forms.py:139 +#: perms/templates/perms/asset_permission_list.html:73 settings/forms.py:143 #: users/templates/users/_granted_assets.html:25 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_asset_list.html:53 #: xpack/plugins/gathered_user/templates/gathered_user/gathered_user_list.html:72 @@ -908,7 +908,7 @@ msgid "Latest version" msgstr "最新版本" #: assets/models/authbook.py:26 -#: assets/templates/assets/_asset_user_list.html:17 +#: assets/templates/assets/_asset_user_list.html:22 #: ops/templates/ops/adhoc_history.html:58 #: ops/templates/ops/adhoc_history_detail.html:57 #: ops/templates/ops/task_adhoc.html:58 ops/templates/ops/task_history.html:64 @@ -999,7 +999,7 @@ msgid "Regex" msgstr "正则表达式" #: assets/models/cmd_filter.py:39 ops/models/command.py:21 -#: ops/templates/ops/command_execution_list.html:64 terminal/models.py:162 +#: ops/templates/ops/command_execution_list.html:64 terminal/models.py:163 #: terminal/templates/terminal/command_list.html:28 #: terminal/templates/terminal/command_list.html:68 #: terminal/templates/terminal/session_detail.html:48 @@ -1086,7 +1086,7 @@ msgstr "默认资产组" #: audits/templates/audits/password_change_log_list.html:56 #: ops/templates/ops/command_execution_list.html:38 #: ops/templates/ops/command_execution_list.html:63 -#: perms/forms/asset_permission.py:73 perms/forms/remote_app_permission.py:31 +#: perms/forms/asset_permission.py:74 perms/forms/remote_app_permission.py:34 #: perms/models/base.py:49 #: perms/templates/perms/asset_permission_create_update.html:41 #: perms/templates/perms/asset_permission_list.html:50 @@ -1094,20 +1094,20 @@ msgstr "默认资产组" #: perms/templates/perms/remote_app_permission_create_update.html:43 #: perms/templates/perms/remote_app_permission_list.html:15 #: templates/index.html:87 terminal/backends/command/models.py:12 -#: terminal/models.py:155 terminal/templates/terminal/command_list.html:29 +#: terminal/models.py:156 terminal/templates/terminal/command_list.html:29 #: terminal/templates/terminal/command_list.html:65 #: terminal/templates/terminal/session_list.html:27 #: terminal/templates/terminal/session_list.html:71 users/forms.py:312 #: users/models/user.py:127 users/models/user.py:143 users/models/user.py:500 #: users/serializers/v1.py:130 users/templates/users/user_group_detail.html:78 #: users/templates/users/user_group_list.html:36 users/views/user.py:250 -#: xpack/plugins/orgs/forms.py:26 +#: xpack/plugins/orgs/forms.py:28 #: xpack/plugins/orgs/templates/orgs/org_detail.html:113 #: xpack/plugins/orgs/templates/orgs/org_list.html:15 msgid "User" msgstr "用户" -#: assets/models/label.py:19 assets/models/node.py:404 +#: assets/models/label.py:19 assets/models/node.py:400 #: assets/templates/assets/label_list.html:15 settings/models.py:30 msgid "Value" msgstr "值" @@ -1120,15 +1120,15 @@ msgstr "分类" msgid "New node" msgstr "新节点" -#: assets/models/node.py:328 +#: assets/models/node.py:324 msgid "ungrouped" msgstr "未分组" -#: assets/models/node.py:330 +#: assets/models/node.py:326 msgid "empty" msgstr "空" -#: assets/models/node.py:403 +#: assets/models/node.py:399 msgid "Key" msgstr "键" @@ -1185,7 +1185,7 @@ msgstr "登录模式" #: assets/models/user.py:162 assets/templates/assets/user_asset_list.html:52 #: audits/models.py:20 audits/templates/audits/ftp_log_list.html:52 #: audits/templates/audits/ftp_log_list.html:75 -#: perms/forms/asset_permission.py:85 perms/forms/remote_app_permission.py:40 +#: perms/forms/asset_permission.py:86 perms/forms/remote_app_permission.py:43 #: perms/models/asset_permission.py:82 perms/models/remote_app_permission.py:16 #: perms/templates/perms/asset_permission_detail.html:140 #: perms/templates/perms/asset_permission_list.html:54 @@ -1194,7 +1194,7 @@ msgstr "登录模式" #: perms/templates/perms/remote_app_permission_detail.html:131 #: perms/templates/perms/remote_app_permission_list.html:18 #: templates/_nav.html:45 terminal/backends/command/models.py:14 -#: terminal/models.py:157 terminal/templates/terminal/command_list.html:31 +#: terminal/models.py:158 terminal/templates/terminal/command_list.html:31 #: terminal/templates/terminal/command_list.html:67 #: terminal/templates/terminal/session_list.html:29 #: terminal/templates/terminal/session_list.html:73 @@ -1231,7 +1231,7 @@ msgid "Protocol duplicate: {}" msgstr "协议重复: {}" #: assets/serializers/asset.py:65 assets/serializers/asset_user.py:29 -#: assets/templates/assets/_asset_user_list.html:18 +#: assets/templates/assets/_asset_user_list.html:23 msgid "Connectivity" msgstr "连接" @@ -1273,7 +1273,7 @@ msgstr "密钥不合法" msgid "value" msgstr "值" -#: assets/serializers/node.py:34 +#: assets/serializers/node.py:36 msgid "The same level node name cannot be the same" msgstr "同级别节点名字不能重复" @@ -1443,7 +1443,7 @@ msgid "Please input password" msgstr "请输入密码" #: assets/templates/assets/_asset_user_auth_update_modal.html:68 -#: assets/templates/assets/asset_detail.html:306 +#: assets/templates/assets/asset_detail.html:304 #: users/templates/users/user_detail.html:313 #: users/templates/users/user_detail.html:340 #: xpack/plugins/interface/views.py:35 @@ -1464,14 +1464,14 @@ msgstr "获取认证信息错误" #: assets/templates/assets/_asset_user_auth_view_modal.html:97 #: assets/templates/assets/_user_asset_detail_modal.html:23 -#: authentication/templates/authentication/_access_key_modal.html:141 +#: authentication/templates/authentication/_access_key_modal.html:142 #: authentication/templates/authentication/_mfa_confirm_modal.html:53 #: settings/templates/settings/_ldap_list_users_modal.html:92 #: templates/_modal.html:22 msgid "Close" msgstr "关闭" -#: assets/templates/assets/_asset_user_list.html:19 +#: assets/templates/assets/_asset_user_list.html:24 #: audits/templates/audits/operate_log_list.html:77 #: audits/templates/audits/password_change_log_list.html:59 #: ops/templates/ops/task_adhoc.html:63 @@ -1480,16 +1480,16 @@ msgstr "关闭" msgid "Datetime" msgstr "日期" -#: assets/templates/assets/_asset_user_list.html:36 +#: assets/templates/assets/_asset_user_list.html:41 #: assets/templates/assets/asset_list.html:137 msgid "Test datetime: " msgstr "测试日期: " -#: assets/templates/assets/_asset_user_list.html:68 +#: assets/templates/assets/_asset_user_list.html:73 msgid "View" msgstr "查看" -#: assets/templates/assets/_asset_user_list.html:70 +#: assets/templates/assets/_asset_user_list.html:75 #: assets/templates/assets/admin_user_assets.html:61 #: assets/templates/assets/asset_asset_user_list.html:57 #: assets/templates/assets/asset_detail.html:178 @@ -1498,7 +1498,7 @@ msgstr "查看" msgid "Test" msgstr "测试" -#: assets/templates/assets/_asset_user_list.html:71 +#: assets/templates/assets/_asset_user_list.html:76 #: assets/templates/assets/system_user_assets.html:72 #: assets/templates/assets/system_user_detail.html:142 msgid "Push" @@ -1508,7 +1508,7 @@ msgstr "推送" msgid "Test gateway test connection" msgstr "测试连接网关" -#: assets/templates/assets/_gateway_test_modal.html:10 terminal/models.py:24 +#: assets/templates/assets/_gateway_test_modal.html:10 terminal/models.py:25 msgid "SSH Port" msgstr "SSH端口" @@ -1754,7 +1754,7 @@ msgid "Date joined" msgstr "创建日期" #: assets/templates/assets/asset_detail.html:150 authentication/models.py:15 -#: authentication/templates/authentication/_access_key_modal.html:31 +#: authentication/templates/authentication/_access_key_modal.html:32 #: perms/models/base.py:51 #: perms/templates/perms/asset_permission_create_update.html:55 #: perms/templates/perms/asset_permission_detail.html:120 @@ -2171,7 +2171,7 @@ msgstr "系统用户资产" #: audits/templates/audits/ftp_log_list.html:76 #: audits/templates/audits/operate_log_list.html:76 #: audits/templates/audits/password_change_log_list.html:58 -#: terminal/models.py:159 terminal/templates/terminal/session_list.html:30 +#: terminal/models.py:160 terminal/templates/terminal/session_list.html:30 #: terminal/templates/terminal/session_list.html:74 #: terminal/templates/terminal/terminal_detail.html:47 msgid "Remote addr" @@ -2197,7 +2197,7 @@ msgid "Success" msgstr "成功" #: audits/models.py:32 -#: authentication/templates/authentication/_access_key_modal.html:21 +#: authentication/templates/authentication/_access_key_modal.html:22 #: xpack/plugins/vault/templates/vault/vault.html:46 msgid "Create" msgstr "创建" @@ -2282,7 +2282,7 @@ msgstr "登录日期" #: ops/templates/ops/task_history.html:58 perms/models/base.py:52 #: perms/templates/perms/asset_permission_detail.html:86 #: perms/templates/perms/remote_app_permission_detail.html:78 -#: terminal/models.py:166 terminal/templates/terminal/session_list.html:34 +#: terminal/models.py:167 terminal/templates/terminal/session_list.html:34 #: xpack/plugins/change_auth_plan/models.py:249 #: xpack/plugins/change_auth_plan/models.py:419 #: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_list.html:59 @@ -2310,7 +2310,7 @@ msgid "Search" msgstr "搜索" #: audits/templates/audits/login_log_list.html:56 -#: authentication/templates/authentication/_access_key_modal.html:29 +#: authentication/templates/authentication/_access_key_modal.html:30 #: ops/templates/ops/adhoc_detail.html:49 #: ops/templates/ops/adhoc_history_detail.html:49 #: ops/templates/ops/task_detail.html:56 @@ -2329,7 +2329,7 @@ msgid "City" msgstr "城市" #: audits/templates/audits/login_log_list.html:65 -#: authentication/templates/authentication/_access_key_modal.html:32 +#: authentication/templates/authentication/_access_key_modal.html:33 #: ops/templates/ops/task_list.html:16 msgid "Date" msgstr "日期" @@ -2490,27 +2490,27 @@ msgstr "API Key列表" msgid "Using api key sign api header, every requests header difference" msgstr "使用api key签名请求头,每个请求的头部是不一样的" -#: authentication/templates/authentication/_access_key_modal.html:18 +#: authentication/templates/authentication/_access_key_modal.html:19 msgid "docs" msgstr "文档" -#: authentication/templates/authentication/_access_key_modal.html:30 +#: authentication/templates/authentication/_access_key_modal.html:31 msgid "Secret" msgstr "密文" -#: authentication/templates/authentication/_access_key_modal.html:47 +#: authentication/templates/authentication/_access_key_modal.html:48 #: users/templates/users/_granted_assets.html:75 msgid "Show" msgstr "显示" -#: authentication/templates/authentication/_access_key_modal.html:65 +#: authentication/templates/authentication/_access_key_modal.html:66 #: users/models/user.py:330 users/templates/users/user_profile.html:94 #: users/templates/users/user_profile.html:163 #: users/templates/users/user_profile.html:166 msgid "Disable" msgstr "禁用" -#: authentication/templates/authentication/_access_key_modal.html:66 +#: authentication/templates/authentication/_access_key_modal.html:67 #: users/models/user.py:331 users/templates/users/user_profile.html:92 #: users/templates/users/user_profile.html:170 msgid "Enable" @@ -2740,6 +2740,10 @@ msgstr "" "
Luna是单独部署的一个程序,你需要部署luna,koko,
如果你看到了" "这个页面,证明你访问的不是nginx监听的端口,祝你好运
" +#: jumpserver/views.py:233 +msgid "Websocket server run on port: {}, you should proxy it on nginx" +msgstr "" + #: ops/api/celery.py:54 msgid "Waiting task start" msgstr "等待任务开始" @@ -2752,7 +2756,7 @@ msgstr "" msgid "Interval" msgstr "间隔" -#: ops/models/adhoc.py:38 settings/forms.py:158 +#: ops/models/adhoc.py:38 settings/forms.py:162 msgid "Units: seconds" msgstr "单位: 秒" @@ -3064,7 +3068,7 @@ msgstr "版本" msgid "Run" msgstr "执行" -#: ops/templates/ops/task_list.html:109 +#: ops/templates/ops/task_list.html:108 msgid "Task start: " msgstr "任务开始: " @@ -3095,7 +3099,7 @@ msgstr "命令执行列表" msgid "Command execution" msgstr "命令执行" -#: orgs/mixins/models.py:61 orgs/mixins/serializers.py:26 orgs/models.py:30 +#: orgs/mixins/models.py:61 orgs/mixins/serializers.py:26 orgs/models.py:31 msgid "Organization" msgstr "组织" @@ -3107,7 +3111,7 @@ msgstr "未分组" msgid "Empty" msgstr "空" -#: perms/forms/asset_permission.py:76 perms/forms/remote_app_permission.py:34 +#: perms/forms/asset_permission.py:77 perms/forms/remote_app_permission.py:37 #: perms/models/base.py:50 perms/templates/perms/asset_permission_list.html:51 #: perms/templates/perms/asset_permission_list.html:71 #: perms/templates/perms/asset_permission_list.html:118 @@ -3120,21 +3124,21 @@ msgstr "空" msgid "User group" msgstr "用户组" -#: perms/forms/asset_permission.py:92 +#: perms/forms/asset_permission.py:93 msgid "" "Tips: The RDP protocol does not support separate controls for uploading or " "downloading files" msgstr "提示:RDP 协议不支持单独控制上传或下载文件" -#: perms/forms/asset_permission.py:102 perms/forms/remote_app_permission.py:50 +#: perms/forms/asset_permission.py:103 perms/forms/remote_app_permission.py:53 msgid "User or group at least one required" msgstr "用户和用户组至少选一个" -#: perms/forms/asset_permission.py:111 +#: perms/forms/asset_permission.py:112 msgid "Asset or group at least one required" msgstr "资产和节点至少选一个" -#: perms/models/asset_permission.py:31 settings/forms.py:143 +#: perms/models/asset_permission.py:31 settings/forms.py:147 msgid "All" msgstr "全部" @@ -3382,29 +3386,29 @@ msgstr "远程应用授权远程应用列表" msgid "Test mail sent to {}, please check" msgstr "邮件已经发送{}, 请检查" -#: settings/api.py:53 +#: settings/api.py:55 msgid "Test ldap success" msgstr "连接LDAP成功" -#: settings/api.py:90 +#: settings/api.py:92 msgid "Match {} s users" msgstr "匹配 {} 个用户" -#: settings/api.py:161 +#: settings/api.py:163 msgid "succeed: {} failed: {} total: {}" msgstr "成功:{} 失败:{} 总数:{}" -#: settings/api.py:183 settings/api.py:219 +#: settings/api.py:185 settings/api.py:221 msgid "" "Error: Account invalid (Please make sure the information such as Access key " "or Secret key is correct)" msgstr "错误:账户无效 (请确保 Access key 或 Secret key 等信息正确)" -#: settings/api.py:189 settings/api.py:225 +#: settings/api.py:191 settings/api.py:227 msgid "Create succeed" msgstr "创建成功" -#: settings/api.py:207 settings/api.py:245 +#: settings/api.py:209 settings/api.py:247 #: settings/templates/settings/terminal_setting.html:154 msgid "Delete succeed" msgstr "删除成功" @@ -3458,51 +3462,59 @@ msgid "Tips: Send mail account, default SMTP account as the send account" msgstr "提示:发送邮件账号,默认使用SMTP账号作为发送账号" #: settings/forms.py:93 +msgid "Test recipient" +msgstr "测试收件人" + +#: settings/forms.py:94 +msgid "Tips: Used only as a test mail recipient" +msgstr "提示:仅用来作为测试邮件收件人" + +#: settings/forms.py:97 msgid "Use SSL" msgstr "使用SSL" -#: settings/forms.py:94 +#: settings/forms.py:98 msgid "If SMTP port is 465, may be select" msgstr "如果SMTP端口是465,通常需要启用SSL" -#: settings/forms.py:97 +#: settings/forms.py:101 msgid "Use TLS" msgstr "使用TLS" -#: settings/forms.py:98 +#: settings/forms.py:102 msgid "If SMTP port is 587, may be select" msgstr "如果SMTP端口是587,通常需要启用TLS" -#: settings/forms.py:104 +#: settings/forms.py:108 msgid "LDAP server" msgstr "LDAP地址" -#: settings/forms.py:107 +#: settings/forms.py:111 msgid "Bind DN" msgstr "绑定DN" -#: settings/forms.py:114 +#: settings/forms.py:118 msgid "User OU" msgstr "用户OU" -#: settings/forms.py:115 +#: settings/forms.py:119 msgid "Use | split User OUs" msgstr "使用|分隔各OU" -#: settings/forms.py:119 +#: settings/forms.py:123 msgid "User search filter" msgstr "用户过滤器" -#: settings/forms.py:120 +#: settings/forms.py:124 #, python-format msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)" msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)" -#: settings/forms.py:123 +#: settings/forms.py:127 msgid "User attr map" msgstr "LDAP属性映射" -#: settings/forms.py:125 +#: settings/forms.py:129 msgid "" "User attr map present how to map LDAP user attr to jumpserver, username,name," "email is jumpserver attr" @@ -3510,39 +3522,39 @@ msgstr "" "用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, name," "email 是jumpserver的属性" -#: settings/forms.py:134 +#: settings/forms.py:138 msgid "Enable LDAP auth" msgstr "启用LDAP认证" -#: settings/forms.py:144 +#: settings/forms.py:148 msgid "Auto" msgstr "自动" -#: settings/forms.py:151 +#: settings/forms.py:155 msgid "Password auth" msgstr "密码认证" -#: settings/forms.py:154 +#: settings/forms.py:158 msgid "Public key auth" msgstr "密钥认证" -#: settings/forms.py:157 +#: settings/forms.py:161 msgid "Heartbeat interval" msgstr "心跳间隔" -#: settings/forms.py:161 +#: settings/forms.py:165 msgid "List sort by" msgstr "资产列表排序" -#: settings/forms.py:164 +#: settings/forms.py:168 msgid "List page size" msgstr "资产分页每页数量" -#: settings/forms.py:167 +#: settings/forms.py:171 msgid "Session keep duration" msgstr "会话保留时长" -#: settings/forms.py:168 +#: settings/forms.py:172 msgid "" "Units: days, Session, record, command will be delete if more than duration, " "only in database" @@ -3550,72 +3562,72 @@ msgstr "" "单位:天。 会话、录像、命令记录超过该时长将会被删除(仅影响数据库存储, oss等不" "受影响)" -#: settings/forms.py:172 +#: settings/forms.py:176 msgid "Telnet login regex" msgstr "Telnet 成功正则表达式" -#: settings/forms.py:173 +#: settings/forms.py:177 msgid "ex: Last\\s*login|success|成功" msgstr "" "登录telnet服务器成功后的提示正则表达式,如: Last\\s*login|success|成功 " -#: settings/forms.py:184 +#: settings/forms.py:188 msgid "MFA Secondary certification" msgstr "MFA 二次认证" -#: settings/forms.py:186 +#: settings/forms.py:190 msgid "" "After opening, the user login must use MFA secondary authentication (valid " "for all users, including administrators)" msgstr "开启后,用户登录必须使用MFA二次认证(对所有用户有效,包括管理员)" -#: settings/forms.py:192 +#: settings/forms.py:196 msgid "Batch execute commands" msgstr "批量命令" -#: settings/forms.py:193 +#: settings/forms.py:197 msgid "Allow user batch execute commands" msgstr "允许用户批量执行命令" -#: settings/forms.py:196 +#: settings/forms.py:200 msgid "Service account registration" msgstr "终端注册" -#: settings/forms.py:197 +#: settings/forms.py:201 msgid "" "Allow using bootstrap token register service account, when terminal setup, " "can disable it" msgstr "允许使用bootstrap token注册终端, 当终端注册成功后可以禁止" -#: settings/forms.py:203 +#: settings/forms.py:207 msgid "Limit the number of login failures" msgstr "限制登录失败次数" -#: settings/forms.py:207 +#: settings/forms.py:211 msgid "No logon interval" msgstr "禁止登录时间间隔" -#: settings/forms.py:209 +#: settings/forms.py:213 msgid "" "Tip: (unit/minute) if the user has failed to log in for a limited number of " "times, no login is allowed during this time interval." msgstr "" "提示:(单位:分)当用户登录失败次数达到限制后,那么在此时间间隔内禁止登录" -#: settings/forms.py:216 +#: settings/forms.py:220 msgid "Connection max idle time" msgstr "SSH最大空闲时间" -#: settings/forms.py:218 +#: settings/forms.py:222 msgid "" "If idle time more than it, disconnect connection(only ssh now) Unit: minute" msgstr "提示:(单位:分)如果超过该配置没有操作,连接会被断开(仅ssh)" -#: settings/forms.py:224 +#: settings/forms.py:228 msgid "Password expiration time" msgstr "密码过期时间" -#: settings/forms.py:226 +#: settings/forms.py:230 msgid "" "Tip: (unit: day) If the user does not update the password during the time, " "the user password will expire failure;The password expiration reminder mail " @@ -3625,81 +3637,81 @@ msgstr "" "提示:(单位:天)如果用户在此期间没有更新密码,用户密码将过期失效; 密码过期" "提醒邮件将在密码过期前5天内由系统(每天)自动发送给用户" -#: settings/forms.py:235 +#: settings/forms.py:239 msgid "Password minimum length" msgstr "密码最小长度 " -#: settings/forms.py:239 +#: settings/forms.py:243 msgid "Must contain capital letters" msgstr "必须包含大写字母" -#: settings/forms.py:241 +#: settings/forms.py:245 msgid "" "After opening, the user password changes and resets must contain uppercase " "letters" msgstr "开启后,用户密码修改、重置必须包含大写字母" -#: settings/forms.py:246 +#: settings/forms.py:250 msgid "Must contain lowercase letters" msgstr "必须包含小写字母" -#: settings/forms.py:247 +#: settings/forms.py:251 msgid "" "After opening, the user password changes and resets must contain lowercase " "letters" msgstr "开启后,用户密码修改、重置必须包含小写字母" -#: settings/forms.py:252 +#: settings/forms.py:256 msgid "Must contain numeric characters" msgstr "必须包含数字字符" -#: settings/forms.py:253 +#: settings/forms.py:257 msgid "" "After opening, the user password changes and resets must contain numeric " "characters" msgstr "开启后,用户密码修改、重置必须包含数字字符" -#: settings/forms.py:258 +#: settings/forms.py:262 msgid "Must contain special characters" msgstr "必须包含特殊字符" -#: settings/forms.py:259 +#: settings/forms.py:263 msgid "" "After opening, the user password changes and resets must contain special " "characters" msgstr "开启后,用户密码修改、重置必须包含特殊字符" -#: settings/forms.py:266 +#: settings/forms.py:270 msgid "Create user email subject" msgstr "创建用户邮件的主题" -#: settings/forms.py:267 +#: settings/forms.py:271 msgid "" "Tips: When creating a user, send the subject of the email (eg:Create account " "successfully)" msgstr "提示: 创建用户时,发送设置密码邮件的主题 (例如: 创建用户成功)" -#: settings/forms.py:271 +#: settings/forms.py:275 msgid "Create user honorific" msgstr "创建用户邮件的敬语" -#: settings/forms.py:272 +#: settings/forms.py:276 msgid "Tips: When creating a user, send the honorific of the email (eg:Hello)" msgstr "提示: 创建用户时,发送设置密码邮件的敬语 (例如: 您好)" -#: settings/forms.py:277 +#: settings/forms.py:281 msgid "Create user email content" msgstr "创建用户邮件的内容" -#: settings/forms.py:278 +#: settings/forms.py:282 msgid "Tips:When creating a user, send the content of the email" msgstr "提示: 创建用户时,发送设置密码邮件的内容" -#: settings/forms.py:281 +#: settings/forms.py:285 msgid "Signature" msgstr "署名" -#: settings/forms.py:282 +#: settings/forms.py:286 msgid "Tips: Email signature (eg:jumpserver)" msgstr "提示: 邮件的署名 (例如: jumpserver)" @@ -3894,12 +3906,12 @@ msgid "Password check rule" msgstr "密码校验规则" #: settings/templates/settings/terminal_setting.html:79 terminal/forms.py:27 -#: terminal/models.py:26 +#: terminal/models.py:27 msgid "Command storage" msgstr "命令存储" #: settings/templates/settings/terminal_setting.html:101 terminal/forms.py:32 -#: terminal/models.py:27 +#: terminal/models.py:28 msgid "Replay storage" msgstr "录像存储" @@ -3911,11 +3923,11 @@ msgstr "删除失败" msgid "Are you sure about deleting it?" msgstr "您确定删除吗?" -#: settings/utils.py:90 +#: settings/utils.py:91 msgid "Search no entry matched in ou {}" msgstr "在ou:{}中没有匹配条目" -#: settings/utils.py:122 +#: settings/utils.py:146 msgid "The user source is not LDAP" msgstr "用户来源不是LDAP" @@ -4340,51 +4352,51 @@ msgstr "" "录像文件支持存储到服务器端硬盘、AWS S3、 阿里云 OSS 中,默认存储到服务器端硬" "盘, 更多查看文档" -#: terminal/models.py:23 +#: terminal/models.py:24 msgid "Remote Address" msgstr "远端地址" -#: terminal/models.py:25 +#: terminal/models.py:26 msgid "HTTP Port" msgstr "HTTP端口" -#: terminal/models.py:125 +#: terminal/models.py:126 msgid "Session Online" msgstr "在线会话" -#: terminal/models.py:126 +#: terminal/models.py:127 msgid "CPU Usage" msgstr "CPU使用" -#: terminal/models.py:127 +#: terminal/models.py:128 msgid "Memory Used" msgstr "内存使用" -#: terminal/models.py:128 +#: terminal/models.py:129 msgid "Connections" msgstr "连接数" -#: terminal/models.py:129 +#: terminal/models.py:130 msgid "Threads" msgstr "线程数" -#: terminal/models.py:130 +#: terminal/models.py:131 msgid "Boot Time" msgstr "运行时间" -#: terminal/models.py:161 terminal/templates/terminal/session_list.html:136 +#: terminal/models.py:162 terminal/templates/terminal/session_list.html:136 msgid "Replay" msgstr "回放" -#: terminal/models.py:165 +#: terminal/models.py:166 msgid "Date last active" msgstr "最后活跃日期" -#: terminal/models.py:167 +#: terminal/models.py:168 msgid "Date end" msgstr "结束日期" -#: terminal/models.py:260 +#: terminal/models.py:261 msgid "Args" msgstr "参数" @@ -4512,7 +4524,7 @@ msgid "" "You should use your ssh client tools connect terminal: {}

{}" msgstr "你可以使用ssh客户端工具连接终端" -#: users/api/user.py:173 +#: users/api/user.py:176 msgid "Could not reset self otp, use profile reset instead" msgstr "不能再该页面重置MFA, 请去个人信息页面重置" @@ -4626,7 +4638,7 @@ msgid "Paste your id_rsa.pub here." msgstr "复制你的公钥到这里" #: users/forms.py:269 users/forms.py:274 users/forms.py:316 -#: xpack/plugins/orgs/forms.py:30 +#: xpack/plugins/orgs/forms.py:18 msgid "Select users" msgstr "选择用户" @@ -4643,7 +4655,7 @@ msgstr "管理员" msgid "Application" msgstr "应用程序" -#: users/models/user.py:129 xpack/plugins/orgs/forms.py:38 +#: users/models/user.py:129 xpack/plugins/orgs/forms.py:30 #: xpack/plugins/orgs/templates/orgs/org_list.html:14 msgid "Auditor" msgstr "审计员" @@ -5639,9 +5651,9 @@ msgstr "否" msgid "Run plan manually" msgstr "手动执行计划" -#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:179 -#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_list.html:103 -#: xpack/plugins/gathered_user/templates/gathered_user/task_list.html:91 +#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:178 +#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_list.html:102 +#: xpack/plugins/gathered_user/templates/gathered_user/task_list.html:90 msgid "Execute failed" msgstr "执行失败" @@ -5658,7 +5670,7 @@ msgstr "日志" msgid "Retry" msgstr "重试" -#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:96 +#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_execution_subtask_list.html:95 msgid "Run failed" msgstr "执行失败" @@ -5707,7 +5719,7 @@ msgstr "选择实例" msgid "Select node" msgstr "选择节点" -#: xpack/plugins/cloud/forms.py:82 xpack/plugins/orgs/forms.py:18 +#: xpack/plugins/cloud/forms.py:82 xpack/plugins/orgs/forms.py:21 msgid "Select admins" msgstr "选择管理员" @@ -6127,24 +6139,24 @@ msgstr "许可证导入成功" msgid "License is invalid" msgstr "无效的许可证" -#: xpack/plugins/orgs/forms.py:14 +#: xpack/plugins/orgs/forms.py:24 +msgid "Select auditor" +msgstr "选择审计员" + +#: xpack/plugins/orgs/forms.py:29 #: xpack/plugins/orgs/templates/orgs/org_detail.html:76 #: xpack/plugins/orgs/templates/orgs/org_list.html:13 msgid "Admin" msgstr "管理员" -#: xpack/plugins/orgs/forms.py:42 -msgid "Select auditor" -msgstr "选择审计员" - #: xpack/plugins/orgs/meta.py:8 xpack/plugins/orgs/views.py:26 -#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60 -#: xpack/plugins/orgs/views.py:77 +#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:61 +#: xpack/plugins/orgs/views.py:79 msgid "Organizations" msgstr "组织管理" #: xpack/plugins/orgs/templates/orgs/org_detail.html:22 -#: xpack/plugins/orgs/views.py:78 +#: xpack/plugins/orgs/views.py:80 msgid "Org detail" msgstr "组织详情" @@ -6164,7 +6176,7 @@ msgstr "组织列表" msgid "Create org" msgstr "创建组织" -#: xpack/plugins/orgs/views.py:61 +#: xpack/plugins/orgs/views.py:62 msgid "Update org" msgstr "更新组织" @@ -6185,6 +6197,9 @@ msgstr "密码匣子" msgid "vault create" msgstr "创建" +#~ msgid "Recipient" +#~ msgstr "收件人" + #~ msgid "Gather user plan" #~ msgstr "收集用户计划" diff --git a/apps/settings/api.py b/apps/settings/api.py index af5742921..9df77d036 100644 --- a/apps/settings/api.py +++ b/apps/settings/api.py @@ -30,6 +30,7 @@ class MailTestingAPI(APIView): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): email_from = serializer.validated_data["EMAIL_FROM"] + email_recipient = serializer.validated_data["EMAIL_RECIPIENT"] email_host_user = serializer.validated_data["EMAIL_HOST_USER"] for k, v in serializer.validated_data.items(): if k.startswith('EMAIL'): @@ -38,11 +39,12 @@ class MailTestingAPI(APIView): subject = "Test" message = "Test smtp setting" email_from = email_from or email_host_user - send_mail(subject, message, email_from, [email_from]) + email_recipient = email_recipient or email_from + send_mail(subject, message, email_from, [email_recipient]) except Exception as e: return Response({"error": str(e)}, status=401) - return Response({"msg": self.success_message.format(email_host_user)}) + return Response({"msg": self.success_message.format(email_recipient)}) else: return Response({"error": str(serializer.errors)}, status=401) diff --git a/apps/settings/forms.py b/apps/settings/forms.py index 23bcccb09..4a115bcac 100644 --- a/apps/settings/forms.py +++ b/apps/settings/forms.py @@ -89,6 +89,10 @@ class EmailSettingForm(BaseForm): "Tips: Send mail account, default SMTP account as the send account" ) ) + EMAIL_RECIPIENT = forms.CharField( + max_length=128, label=_("Test recipient"), initial='', required=False, + help_text=_("Tips: Used only as a test mail recipient") + ) EMAIL_USE_SSL = forms.BooleanField( label=_("Use SSL"), initial=False, required=False, help_text=_("If SMTP port is 465, may be select") diff --git a/apps/settings/serializers.py b/apps/settings/serializers.py index f68ea5437..eb8a61679 100644 --- a/apps/settings/serializers.py +++ b/apps/settings/serializers.py @@ -7,6 +7,7 @@ class MailTestSerializer(serializers.Serializer): EMAIL_HOST_USER = serializers.CharField(max_length=1024) EMAIL_HOST_PASSWORD = serializers.CharField(required=False, allow_blank=True) EMAIL_FROM = serializers.CharField(required=False, allow_blank=True) + EMAIL_RECIPIENT = serializers.CharField(required=False, allow_blank=True) EMAIL_USE_SSL = serializers.BooleanField(default=False) EMAIL_USE_TLS = serializers.BooleanField(default=False)