diff --git a/apps/i18n/zh/LC_MESSAGES/django.mo b/apps/i18n/zh/LC_MESSAGES/django.mo index bc860621d..903763d9b 100644 Binary files a/apps/i18n/zh/LC_MESSAGES/django.mo and b/apps/i18n/zh/LC_MESSAGES/django.mo differ diff --git a/apps/i18n/zh/LC_MESSAGES/django.po b/apps/i18n/zh/LC_MESSAGES/django.po index b0ef3043f..12310b65f 100644 --- a/apps/i18n/zh/LC_MESSAGES/django.po +++ b/apps/i18n/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: 2018-07-19 18:29+0800\n" +"POT-Creation-Date: 2018-07-31 19:18+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -17,57 +17,57 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: assets/api/node.py:99 +#: assets/api/node.py:97 msgid "New node {}" msgstr "新节点 {}" -#: assets/api/node.py:234 +#: assets/api/node.py:232 msgid "更新节点资产硬件信息: {}" msgstr "" -#: assets/api/node.py:247 +#: assets/api/node.py:245 msgid "测试节点下资产是否可连接: {}" msgstr "" -#: assets/forms/asset.py:24 assets/models/asset.py:89 assets/models/user.py:112 +#: assets/forms/asset.py:27 assets/models/asset.py:80 assets/models/user.py:113 #: assets/templates/assets/asset_detail.html:183 #: assets/templates/assets/asset_detail.html:191 -#: assets/templates/assets/system_user_detail.html:178 perms/models.py:33 +#: assets/templates/assets/system_user_detail.html:178 perms/models.py:32 msgid "Nodes" msgstr "节点管理" -#: assets/forms/asset.py:27 assets/forms/asset.py:66 assets/forms/asset.py:109 -#: assets/forms/asset.py:113 assets/models/asset.py:94 -#: assets/models/cluster.py:19 assets/models/user.py:72 +#: assets/forms/asset.py:30 assets/forms/asset.py:69 assets/forms/asset.py:112 +#: assets/forms/asset.py:116 assets/models/asset.py:85 +#: assets/models/cluster.py:19 assets/models/user.py:73 #: assets/templates/assets/asset_detail.html:73 templates/_nav.html:25 msgid "Admin user" msgstr "管理用户" -#: assets/forms/asset.py:30 assets/forms/asset.py:69 assets/forms/asset.py:125 +#: assets/forms/asset.py:33 assets/forms/asset.py:72 assets/forms/asset.py:128 #: assets/templates/assets/asset_create.html:36 #: assets/templates/assets/asset_create.html:38 -#: assets/templates/assets/asset_list.html:75 +#: assets/templates/assets/asset_list.html:80 #: assets/templates/assets/asset_update.html:41 #: assets/templates/assets/asset_update.html:43 #: assets/templates/assets/user_asset_list.html:34 msgid "Label" msgstr "标签" -#: assets/forms/asset.py:34 assets/forms/asset.py:73 assets/models/asset.py:85 -#: assets/models/domain.py:46 +#: assets/forms/asset.py:37 assets/forms/asset.py:76 assets/models/asset.py:76 +#: assets/models/domain.py:47 assets/templates/assets/user_asset_list.html:188 msgid "Domain" msgstr "网域" -#: assets/forms/asset.py:38 assets/forms/asset.py:63 assets/forms/asset.py:77 -#: assets/forms/asset.py:128 assets/templates/assets/asset_create.html:30 -#: assets/templates/assets/asset_update.html:35 perms/forms.py:40 -#: perms/forms.py:47 perms/models.py:76 +#: assets/forms/asset.py:41 assets/forms/asset.py:66 assets/forms/asset.py:80 +#: assets/forms/asset.py:131 assets/templates/assets/asset_create.html:30 +#: assets/templates/assets/asset_update.html:35 perms/forms.py:50 +#: perms/forms.py:57 perms/models.py:78 #: perms/templates/perms/asset_permission_list.html:57 #: perms/templates/perms/asset_permission_list.html:142 msgid "Node" msgstr "节点" -#: assets/forms/asset.py:45 assets/forms/asset.py:85 +#: assets/forms/asset.py:48 assets/forms/asset.py:88 msgid "" "root or other NOPASSWD sudo privilege user existed in asset,If asset is " "windows or other set any one, more see admin user left menu" @@ -75,42 +75,39 @@ msgstr "" "root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一" "个, 更多信息查看左侧 `管理用户` 菜单" -#: assets/forms/asset.py:48 assets/forms/asset.py:88 -msgid "* required Must set exact system platform, Windows, Linux ..." -msgstr "* required 必须准确设置操作系统平台,如Windows, Linux ..." - -#: assets/forms/asset.py:49 assets/forms/asset.py:89 +#: assets/forms/asset.py:52 assets/forms/asset.py:92 msgid "" "If your have some network not connect with each other, you can set domain" msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,使用网域网关跳转登录" -#: assets/forms/asset.py:96 assets/forms/asset.py:100 assets/forms/domain.py:16 +#: assets/forms/asset.py:99 assets/forms/asset.py:103 assets/forms/domain.py:17 #: assets/forms/label.py:15 #: perms/templates/perms/asset_permission_asset.html:88 msgid "Select assets" msgstr "选择资产" -#: assets/forms/asset.py:105 assets/models/asset.py:81 -#: assets/models/domain.py:44 assets/templates/assets/admin_user_assets.html:53 +#: assets/forms/asset.py:108 assets/models/asset.py:73 +#: assets/models/domain.py:45 assets/templates/assets/admin_user_assets.html:53 #: assets/templates/assets/asset_detail.html:69 #: assets/templates/assets/domain_gateway_list.html:58 #: assets/templates/assets/system_user_asset.html:51 +#: assets/templates/assets/user_asset_list.html:183 msgid "Port" msgstr "端口" -#: assets/forms/domain.py:14 assets/forms/label.py:13 -#: assets/models/asset.py:237 assets/templates/assets/admin_user_list.html:25 +#: assets/forms/domain.py:15 assets/forms/label.py:13 +#: assets/models/asset.py:225 assets/templates/assets/admin_user_list.html:25 #: assets/templates/assets/domain_detail.html:60 #: assets/templates/assets/domain_list.html:23 #: assets/templates/assets/label_list.html:16 -#: assets/templates/assets/system_user_list.html:30 audits/models.py:11 +#: assets/templates/assets/system_user_list.html:30 audits/models.py:13 #: audits/templates/audits/ftp_log_list.html:41 -#: audits/templates/audits/ftp_log_list.html:72 perms/forms.py:37 -#: perms/models.py:32 +#: audits/templates/audits/ftp_log_list.html:72 perms/forms.py:47 +#: perms/models.py:31 #: perms/templates/perms/asset_permission_create_update.html:40 #: perms/templates/perms/asset_permission_list.html:56 #: perms/templates/perms/asset_permission_list.html:139 -#: terminal/backends/command/models.py:11 terminal/models.py:127 +#: terminal/backends/command/models.py:13 terminal/models.py:128 #: terminal/templates/terminal/command_list.html:40 #: terminal/templates/terminal/command_list.html:73 #: terminal/templates/terminal/session_list.html:41 @@ -118,9 +115,9 @@ msgstr "端口" msgid "Asset" msgstr "资产" -#: assets/forms/domain.py:54 assets/forms/user.py:79 assets/forms/user.py:139 -#: assets/models/base.py:21 assets/models/cluster.py:18 -#: assets/models/domain.py:17 assets/models/group.py:20 +#: assets/forms/domain.py:55 assets/forms/user.py:79 assets/forms/user.py:139 +#: assets/models/base.py:22 assets/models/cluster.py:18 +#: assets/models/domain.py:18 assets/models/group.py:20 #: assets/models/label.py:17 assets/templates/assets/admin_user_detail.html:56 #: assets/templates/assets/admin_user_list.html:23 #: assets/templates/assets/domain_detail.html:56 @@ -132,12 +129,13 @@ msgstr "资产" #: common/templates/common/terminal_setting.html:72 #: common/templates/common/terminal_setting.html:90 ops/models/adhoc.py:36 #: ops/templates/ops/task_detail.html:59 ops/templates/ops/task_list.html:35 -#: perms/models.py:29 perms/templates/perms/asset_permission_detail.html:62 +#: orgs/models.py:10 perms/models.py:28 +#: perms/templates/perms/asset_permission_detail.html:62 #: perms/templates/perms/asset_permission_list.html:53 -#: perms/templates/perms/asset_permission_user.html:54 terminal/models.py:16 -#: terminal/models.py:154 terminal/templates/terminal/terminal_detail.html:43 -#: terminal/templates/terminal/terminal_list.html:29 users/models/group.py:12 -#: users/models/user.py:49 users/templates/users/_select_user_modal.html:13 +#: perms/templates/perms/asset_permission_user.html:54 terminal/models.py:17 +#: terminal/models.py:155 terminal/templates/terminal/terminal_detail.html:43 +#: terminal/templates/terminal/terminal_list.html:29 users/models/group.py:14 +#: users/models/user.py:51 users/templates/users/_select_user_modal.html:13 #: users/templates/users/user_detail.html:63 #: users/templates/users/user_group_detail.html:55 #: users/templates/users/user_group_list.html:12 @@ -147,14 +145,14 @@ msgstr "资产" msgid "Name" msgstr "名称" -#: assets/forms/domain.py:55 assets/forms/user.py:80 assets/forms/user.py:140 -#: assets/models/base.py:22 assets/templates/assets/admin_user_detail.html:60 +#: assets/forms/domain.py:56 assets/forms/user.py:80 assets/forms/user.py:140 +#: assets/models/base.py:23 assets/templates/assets/admin_user_detail.html:60 #: assets/templates/assets/admin_user_list.html:24 #: assets/templates/assets/domain_gateway_list.html:60 #: assets/templates/assets/system_user_detail.html:62 #: assets/templates/assets/system_user_list.html:27 -#: perms/templates/perms/asset_permission_user.html:55 users/forms.py:13 -#: users/forms.py:31 users/models/authentication.py:70 users/models/user.py:47 +#: perms/templates/perms/asset_permission_user.html:55 users/forms.py:15 +#: users/forms.py:33 users/models/authentication.py:70 users/models/user.py:49 #: users/templates/users/_select_user_modal.html:14 #: users/templates/users/login.html:60 #: users/templates/users/login_log_list.html:49 @@ -168,8 +166,8 @@ msgstr "用户名" msgid "Password or private key passphrase" msgstr "密码或密钥密码" -#: assets/forms/user.py:25 assets/models/base.py:23 common/forms.py:113 -#: users/forms.py:15 users/forms.py:33 users/forms.py:45 +#: assets/forms/user.py:25 assets/models/base.py:24 common/forms.py:113 +#: users/forms.py:17 users/forms.py:35 users/forms.py:47 #: users/templates/users/login.html:63 #: users/templates/users/reset_password.html:53 #: users/templates/users/user_create.html:10 @@ -180,7 +178,7 @@ msgstr "密码或密钥密码" msgid "Password" msgstr "密码" -#: assets/forms/user.py:28 users/models/user.py:76 +#: assets/forms/user.py:28 users/models/user.py:78 msgid "Private key" msgstr "ssh私钥" @@ -212,14 +210,15 @@ msgid "" "password." msgstr "如果选择手动登录模式,用户名和密码则不需要填写" -#: assets/models/asset.py:74 assets/models/domain.py:43 +#: assets/models/asset.py:70 assets/models/domain.py:44 #: assets/templates/assets/_asset_list_modal.html:46 #: assets/templates/assets/admin_user_assets.html:52 #: assets/templates/assets/asset_detail.html:61 -#: assets/templates/assets/asset_list.html:87 +#: assets/templates/assets/asset_list.html:92 #: assets/templates/assets/domain_gateway_list.html:57 #: assets/templates/assets/system_user_asset.html:50 -#: assets/templates/assets/user_asset_list.html:46 common/forms.py:144 +#: assets/templates/assets/user_asset_list.html:46 +#: assets/templates/assets/user_asset_list.html:182 common/forms.py:144 #: perms/templates/perms/asset_permission_asset.html:55 #: users/templates/users/login_log_list.html:52 #: users/templates/users/user_granted_asset.html:45 @@ -227,130 +226,135 @@ msgstr "如果选择手动登录模式,用户名和密码则不需要填写" msgid "IP" msgstr "IP" -#: assets/models/asset.py:77 assets/templates/assets/_asset_list_modal.html:45 +#: assets/models/asset.py:71 assets/templates/assets/_asset_list_modal.html:45 #: assets/templates/assets/admin_user_assets.html:51 #: assets/templates/assets/asset_detail.html:57 -#: assets/templates/assets/asset_list.html:86 +#: assets/templates/assets/asset_list.html:91 #: assets/templates/assets/system_user_asset.html:49 -#: assets/templates/assets/user_asset_list.html:45 common/forms.py:143 +#: assets/templates/assets/user_asset_list.html:45 +#: assets/templates/assets/user_asset_list.html:181 common/forms.py:143 #: perms/templates/perms/asset_permission_asset.html:54 #: users/templates/users/user_granted_asset.html:44 #: users/templates/users/user_group_granted_asset.html:44 msgid "Hostname" msgstr "主机名" -#: assets/models/asset.py:80 assets/models/domain.py:45 -#: assets/models/user.py:115 +#: assets/models/asset.py:72 assets/models/domain.py:46 +#: assets/models/user.py:116 #: assets/templates/assets/domain_gateway_list.html:59 #: assets/templates/assets/system_user_detail.html:70 #: assets/templates/assets/system_user_list.html:28 +#: assets/templates/assets/user_asset_list.html:184 #: terminal/templates/terminal/session_list.html:75 msgid "Protocol" msgstr "协议" -#: assets/models/asset.py:83 assets/templates/assets/asset_detail.html:97 +#: assets/models/asset.py:74 assets/templates/assets/asset_detail.html:97 +#: assets/templates/assets/user_asset_list.html:185 msgid "Platform" msgstr "系统平台" -#: assets/models/asset.py:90 assets/models/domain.py:48 +#: assets/models/asset.py:81 assets/models/domain.py:49 #: assets/models/label.py:20 assets/templates/assets/asset_detail.html:105 +#: assets/templates/assets/user_asset_list.html:189 msgid "Is active" msgstr "激活" -#: assets/models/asset.py:99 assets/templates/assets/asset_detail.html:65 +#: assets/models/asset.py:88 assets/templates/assets/asset_detail.html:65 msgid "Public IP" msgstr "公网IP" -#: assets/models/asset.py:101 assets/templates/assets/asset_detail.html:113 +#: assets/models/asset.py:89 assets/templates/assets/asset_detail.html:113 msgid "Asset number" msgstr "资产编号" -#: assets/models/asset.py:105 assets/templates/assets/asset_detail.html:77 +#: assets/models/asset.py:93 assets/templates/assets/asset_detail.html:77 msgid "Vendor" msgstr "制造商" -#: assets/models/asset.py:107 assets/templates/assets/asset_detail.html:81 +#: assets/models/asset.py:95 assets/templates/assets/asset_detail.html:81 msgid "Model" msgstr "型号" -#: assets/models/asset.py:109 assets/templates/assets/asset_detail.html:109 +#: assets/models/asset.py:97 assets/templates/assets/asset_detail.html:109 msgid "Serial number" msgstr "序列号" -#: assets/models/asset.py:112 +#: assets/models/asset.py:100 msgid "CPU model" msgstr "CPU型号" -#: assets/models/asset.py:113 +#: assets/models/asset.py:101 msgid "CPU count" msgstr "CPU数量" -#: assets/models/asset.py:114 +#: assets/models/asset.py:102 msgid "CPU cores" msgstr "CPU核数" -#: assets/models/asset.py:116 assets/templates/assets/asset_detail.html:89 +#: assets/models/asset.py:104 assets/templates/assets/asset_detail.html:89 msgid "Memory" msgstr "内存" -#: assets/models/asset.py:118 +#: assets/models/asset.py:106 msgid "Disk total" msgstr "硬盘大小" -#: assets/models/asset.py:120 +#: assets/models/asset.py:108 msgid "Disk info" msgstr "硬盘信息" -#: assets/models/asset.py:123 assets/templates/assets/asset_detail.html:101 +#: assets/models/asset.py:111 assets/templates/assets/asset_detail.html:101 +#: assets/templates/assets/user_asset_list.html:186 msgid "OS" msgstr "操作系统" -#: assets/models/asset.py:125 +#: assets/models/asset.py:113 msgid "OS version" msgstr "系统版本" -#: assets/models/asset.py:127 +#: assets/models/asset.py:115 msgid "OS arch" msgstr "系统架构" -#: assets/models/asset.py:129 +#: assets/models/asset.py:117 msgid "Hostname raw" msgstr "主机名原始" -#: assets/models/asset.py:133 assets/templates/assets/asset_create.html:34 +#: assets/models/asset.py:121 assets/templates/assets/asset_create.html:34 #: assets/templates/assets/asset_detail.html:220 #: assets/templates/assets/asset_update.html:39 templates/_nav.html:27 msgid "Labels" msgstr "标签管理" -#: assets/models/asset.py:135 assets/models/base.py:29 +#: assets/models/asset.py:123 assets/models/base.py:30 #: assets/models/cluster.py:28 assets/models/group.py:21 #: assets/templates/assets/admin_user_detail.html:68 #: assets/templates/assets/asset_detail.html:117 #: assets/templates/assets/domain_detail.html:72 #: assets/templates/assets/system_user_detail.html:100 -#: ops/templates/ops/adhoc_detail.html:86 perms/models.py:38 perms/models.py:81 -#: perms/templates/perms/asset_permission_detail.html:98 -#: users/models/user.py:90 users/templates/users/user_detail.html:111 +#: ops/templates/ops/adhoc_detail.html:86 orgs/models.py:13 perms/models.py:37 +#: perms/models.py:83 perms/templates/perms/asset_permission_detail.html:98 +#: users/models/user.py:92 users/templates/users/user_detail.html:111 msgid "Created by" msgstr "创建者" -#: assets/models/asset.py:138 assets/models/cluster.py:26 -#: assets/models/domain.py:20 assets/models/group.py:22 +#: assets/models/asset.py:126 assets/models/cluster.py:26 +#: assets/models/domain.py:21 assets/models/group.py:22 #: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:64 #: assets/templates/assets/domain_detail.html:68 #: assets/templates/assets/system_user_detail.html:96 #: ops/templates/ops/adhoc_detail.html:90 ops/templates/ops/task_detail.html:63 -#: perms/models.py:39 perms/models.py:82 +#: orgs/models.py:14 perms/models.py:38 perms/models.py:84 #: perms/templates/perms/asset_permission_detail.html:94 -#: terminal/templates/terminal/terminal_detail.html:59 users/models/group.py:15 +#: terminal/templates/terminal/terminal_detail.html:59 users/models/group.py:17 #: users/templates/users/user_group_detail.html:63 msgid "Date created" msgstr "创建日期" -#: assets/models/asset.py:140 assets/models/base.py:26 -#: assets/models/cluster.py:29 assets/models/domain.py:18 -#: assets/models/domain.py:47 assets/models/group.py:23 +#: assets/models/asset.py:128 assets/models/base.py:27 +#: assets/models/cluster.py:29 assets/models/domain.py:19 +#: assets/models/domain.py:48 assets/models/group.py:23 #: assets/models/label.py:21 assets/templates/assets/admin_user_detail.html:72 #: assets/templates/assets/admin_user_list.html:29 #: assets/templates/assets/asset_detail.html:125 @@ -358,22 +362,24 @@ msgstr "创建日期" #: assets/templates/assets/domain_gateway_list.html:61 #: assets/templates/assets/domain_list.html:25 #: assets/templates/assets/system_user_detail.html:104 -#: assets/templates/assets/system_user_list.html:34 common/models.py:30 -#: ops/models/adhoc.py:42 perms/models.py:40 perms/models.py:83 -#: perms/templates/perms/asset_permission_detail.html:102 terminal/models.py:26 -#: terminal/templates/terminal/terminal_detail.html:63 users/models/group.py:13 -#: users/models/user.py:82 users/templates/users/user_detail.html:123 +#: assets/templates/assets/system_user_list.html:34 +#: assets/templates/assets/user_asset_list.html:190 common/models.py:30 +#: ops/models/adhoc.py:42 orgs/models.py:15 perms/models.py:39 +#: perms/models.py:85 perms/templates/perms/asset_permission_detail.html:102 +#: terminal/models.py:27 terminal/templates/terminal/terminal_detail.html:63 +#: users/models/group.py:15 users/models/user.py:84 +#: users/templates/users/user_detail.html:123 #: users/templates/users/user_group_detail.html:67 #: users/templates/users/user_group_list.html:14 #: users/templates/users/user_profile.html:130 msgid "Comment" msgstr "备注" -#: assets/models/base.py:24 +#: assets/models/base.py:25 msgid "SSH private key" msgstr "ssh密钥" -#: assets/models/base.py:25 +#: assets/models/base.py:26 msgid "SSH public key" msgstr "ssh公钥" @@ -385,7 +391,7 @@ msgstr "带宽" msgid "Contact" msgstr "联系人" -#: assets/models/cluster.py:22 users/models/user.py:68 +#: assets/models/cluster.py:22 users/models/user.py:70 #: users/templates/users/user_detail.html:76 msgid "Phone" msgstr "手机" @@ -411,7 +417,7 @@ msgid "Default" msgstr "默认" #: assets/models/cluster.py:36 assets/models/label.py:13 -#: users/models/user.py:345 +#: users/models/user.py:360 msgid "System" msgstr "系统" @@ -431,25 +437,25 @@ msgstr "资产组" msgid "Default asset group" msgstr "默认资产组" -#: assets/models/label.py:14 audits/models.py:9 +#: assets/models/label.py:14 audits/models.py:11 #: audits/templates/audits/ftp_log_list.html:33 -#: audits/templates/audits/ftp_log_list.html:71 perms/forms.py:14 -#: perms/forms.py:31 perms/models.py:30 +#: audits/templates/audits/ftp_log_list.html:71 perms/forms.py:16 +#: perms/forms.py:41 perms/models.py:29 #: perms/templates/perms/asset_permission_create_update.html:36 #: perms/templates/perms/asset_permission_list.html:54 #: perms/templates/perms/asset_permission_list.html:133 -#: terminal/backends/command/models.py:10 terminal/models.py:126 +#: terminal/backends/command/models.py:12 terminal/models.py:127 #: terminal/templates/terminal/command_list.html:32 #: terminal/templates/terminal/command_list.html:72 #: terminal/templates/terminal/session_list.html:33 -#: terminal/templates/terminal/session_list.html:71 users/forms.py:282 -#: users/models/user.py:31 users/models/user.py:333 +#: terminal/templates/terminal/session_list.html:71 users/forms.py:312 +#: users/models/user.py:33 users/models/user.py:348 #: users/templates/users/user_group_detail.html:78 -#: users/templates/users/user_group_list.html:13 users/views/user.py:367 +#: users/templates/users/user_group_list.html:13 users/views/user.py:380 msgid "User" msgstr "用户" -#: assets/models/label.py:18 assets/models/node.py:16 +#: assets/models/label.py:18 assets/models/node.py:19 #: assets/templates/assets/label_list.html:15 common/models.py:27 msgid "Value" msgstr "值" @@ -458,19 +464,19 @@ msgstr "值" msgid "Category" msgstr "分类" -#: assets/models/node.py:15 +#: assets/models/node.py:18 msgid "Key" msgstr "" -#: assets/models/user.py:108 +#: assets/models/user.py:109 msgid "Automatic login" msgstr "自动登录" -#: assets/models/user.py:109 +#: assets/models/user.py:110 msgid "Manually login" msgstr "手动登录" -#: assets/models/user.py:113 +#: assets/models/user.py:114 #: assets/templates/assets/_asset_group_bulk_update_modal.html:11 #: assets/templates/assets/system_user_asset.html:21 #: assets/views/admin_user.py:29 assets/views/admin_user.py:47 @@ -488,37 +494,37 @@ msgstr "手动登录" msgid "Assets" msgstr "资产管理" -#: assets/models/user.py:114 +#: assets/models/user.py:115 msgid "Priority" msgstr "优先级" -#: assets/models/user.py:116 assets/templates/assets/_system_user.html:59 +#: assets/models/user.py:117 assets/templates/assets/_system_user.html:59 #: assets/templates/assets/system_user_detail.html:122 #: assets/templates/assets/system_user_update.html:10 msgid "Auto push" msgstr "自动推送" -#: assets/models/user.py:117 assets/templates/assets/system_user_detail.html:74 +#: assets/models/user.py:118 assets/templates/assets/system_user_detail.html:74 msgid "Sudo" msgstr "Sudo" -#: assets/models/user.py:118 assets/templates/assets/system_user_detail.html:79 +#: assets/models/user.py:119 assets/templates/assets/system_user_detail.html:79 msgid "Shell" msgstr "Shell" -#: assets/models/user.py:119 assets/templates/assets/system_user_detail.html:66 +#: assets/models/user.py:120 assets/templates/assets/system_user_detail.html:66 #: assets/templates/assets/system_user_list.html:29 msgid "Login mode" msgstr "登录模式" -#: assets/models/user.py:159 audits/models.py:12 -#: audits/templates/audits/ftp_log_list.html:49 -#: audits/templates/audits/ftp_log_list.html:73 perms/forms.py:43 -#: perms/models.py:34 perms/models.py:78 +#: assets/models/user.py:181 assets/templates/assets/user_asset_list.html:187 +#: audits/models.py:14 audits/templates/audits/ftp_log_list.html:49 +#: audits/templates/audits/ftp_log_list.html:73 perms/forms.py:53 +#: perms/models.py:33 perms/models.py:80 #: perms/templates/perms/asset_permission_detail.html:140 #: perms/templates/perms/asset_permission_list.html:58 #: perms/templates/perms/asset_permission_list.html:145 templates/_nav.html:26 -#: terminal/backends/command/models.py:12 terminal/models.py:128 +#: terminal/backends/command/models.py:14 terminal/models.py:129 #: terminal/templates/terminal/command_list.html:48 #: terminal/templates/terminal/command_list.html:74 #: terminal/templates/terminal/session_list.html:49 @@ -674,7 +680,7 @@ msgstr "重置" #: assets/templates/assets/admin_user_create_update.html:46 #: assets/templates/assets/asset_bulk_update.html:24 #: assets/templates/assets/asset_create.html:68 -#: assets/templates/assets/asset_list.html:108 +#: assets/templates/assets/asset_list.html:113 #: assets/templates/assets/asset_update.html:72 #: assets/templates/assets/domain_create_update.html:17 #: assets/templates/assets/gateway_create_update.html:59 @@ -698,6 +704,16 @@ msgstr "重置" msgid "Submit" msgstr "提交" +#: assets/templates/assets/_user_asset_detail_modal.html:7 +#: assets/templates/assets/asset_detail.html:20 assets/views/asset.py:198 +msgid "Asset detail" +msgstr "资产详情" + +#: assets/templates/assets/_user_asset_detail_modal.html:20 +#: templates/_modal.html:21 +msgid "Close" +msgstr "关闭" + #: assets/templates/assets/admin_user_assets.html:18 #: assets/templates/assets/admin_user_detail.html:18 #: assets/templates/assets/domain_detail.html:18 @@ -753,7 +769,7 @@ msgstr "测试" #: assets/templates/assets/admin_user_detail.html:24 #: assets/templates/assets/admin_user_list.html:85 #: assets/templates/assets/asset_detail.html:24 -#: assets/templates/assets/asset_list.html:175 +#: assets/templates/assets/asset_list.html:180 #: assets/templates/assets/domain_detail.html:24 #: assets/templates/assets/domain_detail.html:103 #: assets/templates/assets/domain_gateway_list.html:85 @@ -777,7 +793,7 @@ msgstr "更新" #: assets/templates/assets/admin_user_detail.html:28 #: assets/templates/assets/admin_user_list.html:86 #: assets/templates/assets/asset_detail.html:28 -#: assets/templates/assets/asset_list.html:176 +#: assets/templates/assets/asset_list.html:181 #: assets/templates/assets/domain_detail.html:28 #: assets/templates/assets/domain_detail.html:104 #: assets/templates/assets/domain_gateway_list.html:86 @@ -808,7 +824,7 @@ msgstr "选择节点" #: assets/templates/assets/admin_user_detail.html:100 #: assets/templates/assets/asset_detail.html:200 -#: assets/templates/assets/asset_list.html:638 +#: assets/templates/assets/asset_list.html:646 #: assets/templates/assets/system_user_detail.html:195 #: assets/templates/assets/system_user_list.html:139 templates/_modal.html:22 #: terminal/templates/terminal/session_detail.html:108 @@ -841,7 +857,7 @@ msgid "Ratio" msgstr "比例" #: assets/templates/assets/admin_user_list.html:30 -#: assets/templates/assets/asset_list.html:91 +#: assets/templates/assets/asset_list.html:96 #: assets/templates/assets/domain_gateway_list.html:62 #: assets/templates/assets/domain_list.html:26 #: assets/templates/assets/label_list.html:17 @@ -856,10 +872,6 @@ msgstr "比例" msgid "Action" msgstr "动作" -#: assets/templates/assets/asset_detail.html:20 assets/views/asset.py:198 -msgid "Asset detail" -msgstr "资产详情" - #: assets/templates/assets/asset_detail.html:85 msgid "CPU" msgstr "CPU" @@ -882,9 +894,9 @@ msgid "Quick modify" msgstr "快速修改" #: assets/templates/assets/asset_detail.html:143 -#: assets/templates/assets/asset_list.html:89 -#: assets/templates/assets/user_asset_list.html:47 perms/models.py:35 -#: perms/models.py:79 +#: assets/templates/assets/asset_list.html:94 +#: assets/templates/assets/user_asset_list.html:47 perms/models.py:34 +#: perms/models.py:81 #: perms/templates/perms/asset_permission_create_update.html:47 #: perms/templates/perms/asset_permission_detail.html:120 #: perms/templates/perms/asset_permission_list.html:59 @@ -912,97 +924,97 @@ msgstr "刷新" msgid "Update successfully!" msgstr "更新成功" -#: assets/templates/assets/asset_list.html:63 assets/views/asset.py:97 +#: assets/templates/assets/asset_list.html:68 assets/views/asset.py:97 msgid "Create asset" msgstr "创建资产" -#: assets/templates/assets/asset_list.html:67 +#: assets/templates/assets/asset_list.html:72 #: users/templates/users/user_list.html:7 msgid "Import" msgstr "导入" -#: assets/templates/assets/asset_list.html:70 +#: assets/templates/assets/asset_list.html:75 #: users/templates/users/user_list.html:10 msgid "Export" msgstr "导出" -#: assets/templates/assets/asset_list.html:88 +#: assets/templates/assets/asset_list.html:93 msgid "Hardware" msgstr "硬件" -#: assets/templates/assets/asset_list.html:100 +#: assets/templates/assets/asset_list.html:105 #: users/templates/users/user_list.html:38 msgid "Delete selected" msgstr "批量删除" -#: assets/templates/assets/asset_list.html:101 +#: assets/templates/assets/asset_list.html:106 #: users/templates/users/user_list.html:39 msgid "Update selected" msgstr "批量更新" -#: assets/templates/assets/asset_list.html:102 +#: assets/templates/assets/asset_list.html:107 msgid "Remove from this node" msgstr "从节点移除" -#: assets/templates/assets/asset_list.html:103 +#: assets/templates/assets/asset_list.html:108 #: users/templates/users/user_list.html:40 msgid "Deactive selected" msgstr "禁用所选" -#: assets/templates/assets/asset_list.html:104 +#: assets/templates/assets/asset_list.html:109 #: users/templates/users/user_list.html:41 msgid "Active selected" msgstr "激活所选" -#: assets/templates/assets/asset_list.html:121 +#: assets/templates/assets/asset_list.html:126 msgid "Add node" msgstr "新建节点" -#: assets/templates/assets/asset_list.html:122 +#: assets/templates/assets/asset_list.html:127 msgid "Rename node" msgstr "重命名节点" -#: assets/templates/assets/asset_list.html:123 +#: assets/templates/assets/asset_list.html:128 msgid "Delete node" msgstr "删除节点" -#: assets/templates/assets/asset_list.html:125 +#: assets/templates/assets/asset_list.html:130 msgid "Add assets to node" msgstr "添加资产到节点" -#: assets/templates/assets/asset_list.html:126 +#: assets/templates/assets/asset_list.html:131 msgid "Move assets to node" msgstr "移动资产到节点" -#: assets/templates/assets/asset_list.html:128 +#: assets/templates/assets/asset_list.html:133 msgid "Refresh node hardware info" msgstr "更新节点资产硬件信息" -#: assets/templates/assets/asset_list.html:129 +#: assets/templates/assets/asset_list.html:134 msgid "Test node connective" msgstr "测试节点资产可连接性" -#: assets/templates/assets/asset_list.html:131 +#: assets/templates/assets/asset_list.html:136 msgid "Display only current node assets" msgstr "仅显示当前节点资产" -#: assets/templates/assets/asset_list.html:132 +#: assets/templates/assets/asset_list.html:137 msgid "Displays all child node assets" msgstr "显示所有子节点资产" -#: assets/templates/assets/asset_list.html:218 +#: assets/templates/assets/asset_list.html:223 msgid "Create node failed" msgstr "创建节点失败" -#: assets/templates/assets/asset_list.html:230 +#: assets/templates/assets/asset_list.html:235 msgid "Have child node, cancel" msgstr "存在子节点,不能删除" -#: assets/templates/assets/asset_list.html:232 +#: assets/templates/assets/asset_list.html:237 msgid "Have assets, cancel" msgstr "存在资产,不能删除" -#: assets/templates/assets/asset_list.html:633 +#: assets/templates/assets/asset_list.html:641 #: assets/templates/assets/system_user_list.html:134 #: users/templates/users/user_detail.html:369 #: users/templates/users/user_detail.html:394 @@ -1012,20 +1024,20 @@ msgstr "存在资产,不能删除" msgid "Are you sure?" msgstr "你确认吗?" -#: assets/templates/assets/asset_list.html:634 +#: assets/templates/assets/asset_list.html:642 msgid "This will delete the selected assets !!!" msgstr "删除选择资产" -#: assets/templates/assets/asset_list.html:642 +#: assets/templates/assets/asset_list.html:650 msgid "Asset Deleted." msgstr "已被删除" -#: assets/templates/assets/asset_list.html:643 -#: assets/templates/assets/asset_list.html:648 +#: assets/templates/assets/asset_list.html:651 +#: assets/templates/assets/asset_list.html:656 msgid "Asset Delete" msgstr "删除" -#: assets/templates/assets/asset_list.html:647 +#: assets/templates/assets/asset_list.html:655 msgid "Asset Deleting failed." msgstr "删除失败" @@ -1219,22 +1231,22 @@ msgstr "资产管理" msgid "System user asset" msgstr "系统用户集群资产" -#: audits/models.py:10 audits/templates/audits/ftp_log_list.html:74 -#: terminal/models.py:130 terminal/templates/terminal/session_list.html:74 +#: audits/models.py:12 audits/templates/audits/ftp_log_list.html:74 +#: terminal/models.py:131 terminal/templates/terminal/session_list.html:74 #: terminal/templates/terminal/terminal_detail.html:47 msgid "Remote addr" msgstr "远端地址" -#: audits/models.py:13 audits/templates/audits/ftp_log_list.html:75 +#: audits/models.py:15 audits/templates/audits/ftp_log_list.html:75 msgid "Operate" msgstr "操作" -#: audits/models.py:14 audits/templates/audits/ftp_log_list.html:56 +#: audits/models.py:16 audits/templates/audits/ftp_log_list.html:56 #: audits/templates/audits/ftp_log_list.html:76 msgid "Filename" msgstr "文件名" -#: audits/models.py:15 audits/templates/audits/ftp_log_list.html:77 +#: audits/models.py:17 audits/templates/audits/ftp_log_list.html:77 #: ops/templates/ops/task_list.html:39 users/models/authentication.py:66 #: users/templates/users/user_detail.html:443 msgid "Success" @@ -1243,17 +1255,17 @@ msgstr "成功" #: audits/templates/audits/ftp_log_list.html:78 #: ops/templates/ops/adhoc_history.html:52 #: ops/templates/ops/adhoc_history_detail.html:61 -#: ops/templates/ops/task_history.html:58 perms/models.py:36 -#: perms/templates/perms/asset_permission_detail.html:86 terminal/models.py:137 +#: ops/templates/ops/task_history.html:58 perms/models.py:35 +#: perms/templates/perms/asset_permission_detail.html:86 terminal/models.py:138 #: terminal/templates/terminal/session_list.html:78 msgid "Date start" msgstr "开始日期" -#: audits/views.py:50 templates/_nav.html:64 +#: audits/views.py:51 templates/_nav.html:68 msgid "Audits" msgstr "日志审计" -#: audits/views.py:51 templates/_nav.html:67 +#: audits/views.py:52 templates/_nav.html:71 msgid "FTP log" msgstr "FTP日志" @@ -1401,7 +1413,7 @@ msgid "Public key auth" msgstr "密钥认证" #: common/forms.py:159 common/templates/common/terminal_setting.html:68 -#: terminal/forms.py:30 terminal/models.py:20 +#: terminal/forms.py:30 terminal/models.py:21 msgid "Command storage" msgstr "命令存储" @@ -1412,7 +1424,7 @@ msgid "" msgstr "设置终端命令存储,default是默认用的存储方式" #: common/forms.py:165 common/templates/common/terminal_setting.html:86 -#: terminal/forms.py:35 terminal/models.py:21 +#: terminal/forms.py:35 terminal/models.py:22 msgid "Replay storage" msgstr "录像存储" @@ -1491,11 +1503,11 @@ msgid "" "characters" msgstr "开启后,用户密码修改、重置必须包含特殊字符" -#: common/mixins.py:29 +#: common/mixins.py:28 msgid "is discard" msgstr "" -#: common/mixins.py:30 +#: common/mixins.py:29 msgid "discard time" msgstr "" @@ -1509,7 +1521,7 @@ msgstr "启用" #: common/templates/common/ldap_setting.html:15 #: common/templates/common/security_setting.html:15 #: common/templates/common/terminal_setting.html:16 -#: common/templates/common/terminal_setting.html:46 common/views.py:22 +#: common/templates/common/terminal_setting.html:46 common/views.py:20 msgid "Basic setting" msgstr "基本设置" @@ -1517,7 +1529,7 @@ msgstr "基本设置" #: common/templates/common/email_setting.html:18 #: common/templates/common/ldap_setting.html:18 #: common/templates/common/security_setting.html:18 -#: common/templates/common/terminal_setting.html:20 common/views.py:48 +#: common/templates/common/terminal_setting.html:20 common/views.py:46 msgid "Email setting" msgstr "邮件设置" @@ -1525,7 +1537,7 @@ msgstr "邮件设置" #: common/templates/common/email_setting.html:21 #: common/templates/common/ldap_setting.html:21 #: common/templates/common/security_setting.html:21 -#: common/templates/common/terminal_setting.html:24 common/views.py:74 +#: common/templates/common/terminal_setting.html:24 common/views.py:72 msgid "LDAP setting" msgstr "LDAP设置" @@ -1533,7 +1545,7 @@ msgstr "LDAP设置" #: common/templates/common/email_setting.html:24 #: common/templates/common/ldap_setting.html:24 #: common/templates/common/security_setting.html:24 -#: common/templates/common/terminal_setting.html:28 common/views.py:104 +#: common/templates/common/terminal_setting.html:28 common/views.py:102 msgid "Terminal setting" msgstr "终端设置" @@ -1541,7 +1553,7 @@ msgstr "终端设置" #: common/templates/common/email_setting.html:27 #: common/templates/common/ldap_setting.html:27 #: common/templates/common/security_setting.html:27 -#: common/templates/common/terminal_setting.html:31 common/views.py:132 +#: common/templates/common/terminal_setting.html:31 common/views.py:130 msgid "Security setting" msgstr "安全设置" @@ -1563,17 +1575,17 @@ msgstr "类型" msgid "Special char not allowed" msgstr "不能包含特殊字符" -#: common/views.py:21 common/views.py:47 common/views.py:73 common/views.py:103 -#: common/views.py:131 templates/_nav.html:81 +#: common/views.py:19 common/views.py:45 common/views.py:71 common/views.py:101 +#: common/views.py:129 templates/_nav.html:86 msgid "Settings" msgstr "系统设置" -#: common/views.py:32 common/views.py:58 common/views.py:86 common/views.py:116 -#: common/views.py:142 +#: common/views.py:30 common/views.py:56 common/views.py:84 common/views.py:114 +#: common/views.py:140 msgid "Update setting successfully, please restart program" msgstr "更新设置成功, 请手动重启程序" -#: ops/api.py:79 +#: ops/api.py:81 msgid "Waiting ..." msgstr "" @@ -1629,36 +1641,36 @@ msgstr "Become" msgid "Create by" msgstr "创建者" -#: ops/models/adhoc.py:323 +#: ops/models/adhoc.py:324 msgid "Start time" msgstr "开始时间" -#: ops/models/adhoc.py:324 +#: ops/models/adhoc.py:325 msgid "End time" msgstr "完成时间" -#: ops/models/adhoc.py:325 ops/templates/ops/adhoc_history.html:57 +#: ops/models/adhoc.py:326 ops/templates/ops/adhoc_history.html:57 #: ops/templates/ops/task_history.html:63 ops/templates/ops/task_list.html:41 msgid "Time" msgstr "时间" -#: ops/models/adhoc.py:326 ops/templates/ops/adhoc_detail.html:106 +#: ops/models/adhoc.py:327 ops/templates/ops/adhoc_detail.html:106 #: ops/templates/ops/adhoc_history.html:55 #: ops/templates/ops/adhoc_history_detail.html:69 #: ops/templates/ops/task_detail.html:83 ops/templates/ops/task_history.html:61 msgid "Is finished" msgstr "是否完成" -#: ops/models/adhoc.py:327 ops/templates/ops/adhoc_history.html:56 +#: ops/models/adhoc.py:328 ops/templates/ops/adhoc_history.html:56 #: ops/templates/ops/task_history.html:62 msgid "Is success" msgstr "是否成功" -#: ops/models/adhoc.py:328 +#: ops/models/adhoc.py:329 msgid "Adhoc raw result" msgstr "结果" -#: ops/models/adhoc.py:329 +#: ops/models/adhoc.py:330 msgid "Adhoc result summary" msgstr "汇总" @@ -1738,7 +1750,7 @@ msgid "Run history detail" msgstr "执行历史详情" #: ops/templates/ops/adhoc_history_detail.html:22 -#: terminal/backends/command/models.py:14 +#: terminal/backends/command/models.py:16 msgid "Output" msgstr "输出" @@ -1808,6 +1820,7 @@ msgstr "内容" #: ops/templates/ops/task_list.html:21 ops/templates/ops/task_list.html:26 #: templates/_base_list.html:43 templates/_header_bar.html:8 #: terminal/templates/terminal/command_list.html:60 +#: terminal/templates/terminal/session_list.html:61 #: users/templates/users/login_log_list.html:35 #: users/templates/users/login_log_list.html:40 msgid "Search" @@ -1835,7 +1848,7 @@ msgstr "任务开始: " msgid "Ops" msgstr "作业中心" -#: ops/views.py:37 templates/_nav.html:59 +#: ops/views.py:37 templates/_nav.html:62 msgid "Task list" msgstr "任务列表" @@ -1843,37 +1856,37 @@ msgstr "任务列表" msgid "Task run history" msgstr "执行历史" -#: perms/forms.py:18 users/forms.py:239 users/forms.py:244 users/forms.py:256 -#: users/forms.py:286 +#: perms/forms.py:20 users/forms.py:265 users/forms.py:270 users/forms.py:282 +#: users/forms.py:316 msgid "Select users" msgstr "选择用户" -#: perms/forms.py:34 perms/models.py:31 perms/models.py:77 +#: perms/forms.py:44 perms/models.py:30 perms/models.py:79 #: perms/templates/perms/asset_permission_list.html:55 #: perms/templates/perms/asset_permission_list.html:136 templates/_nav.html:14 -#: users/models/group.py:23 users/models/user.py:55 +#: users/models/group.py:26 users/models/user.py:57 #: users/templates/users/_select_user_modal.html:16 #: users/templates/users/user_detail.html:200 #: users/templates/users/user_list.html:26 msgid "User group" msgstr "用户组" -#: perms/forms.py:56 +#: perms/forms.py:66 msgid "User or group at least one required" msgstr "" -#: perms/forms.py:65 +#: perms/forms.py:75 msgid "Asset or group at least one required" msgstr "" -#: perms/models.py:37 perms/models.py:80 +#: perms/models.py:36 perms/models.py:82 #: perms/templates/perms/asset_permission_detail.html:90 -#: users/models/user.py:87 users/templates/users/user_detail.html:107 +#: users/models/user.py:89 users/templates/users/user_detail.html:107 #: users/templates/users/user_profile.html:112 msgid "Date expired" msgstr "失效日期" -#: perms/models.py:90 templates/_nav.html:34 +#: perms/models.py:92 templates/_nav.html:34 msgid "Asset permission" msgstr "资产授权" @@ -1963,28 +1976,28 @@ msgstr "添加用户组" msgid "Select user groups" msgstr "选择用户组" -#: perms/views.py:25 perms/views.py:55 perms/views.py:70 perms/views.py:85 -#: perms/views.py:120 perms/views.py:151 templates/_nav.html:31 +#: perms/views.py:23 perms/views.py:53 perms/views.py:68 perms/views.py:83 +#: perms/views.py:118 perms/views.py:150 templates/_nav.html:31 msgid "Perms" msgstr "权限管理" -#: perms/views.py:26 +#: perms/views.py:24 msgid "Asset permission list" msgstr "资产授权列表" -#: perms/views.py:56 +#: perms/views.py:54 msgid "Create asset permission" msgstr "创建权限规则" -#: perms/views.py:71 perms/views.py:86 +#: perms/views.py:69 perms/views.py:84 msgid "Update asset permission" msgstr "更新资产授权" -#: perms/views.py:121 +#: perms/views.py:119 msgid "Asset permission user list" msgstr "资产授权用户列表" -#: perms/views.py:152 +#: perms/views.py:151 msgid "Asset permission asset list" msgstr "资产授权资产列表" @@ -1996,14 +2009,14 @@ msgstr "商业支持" msgid "Docs" msgstr "文档" -#: templates/_header_bar.html:37 templates/_nav_user.html:9 users/forms.py:122 +#: templates/_header_bar.html:37 templates/_nav_user.html:9 users/forms.py:148 #: users/templates/users/_user.html:39 #: users/templates/users/first_login.html:39 #: users/templates/users/user_password_update.html:39 #: users/templates/users/user_profile.html:17 #: users/templates/users/user_profile_update.html:37 #: users/templates/users/user_profile_update.html:57 -#: users/templates/users/user_pubkey_update.html:37 users/views/user.py:349 +#: users/templates/users/user_pubkey_update.html:37 users/views/user.py:362 msgid "Profile" msgstr "个人信息" @@ -2054,19 +2067,15 @@ msgstr "" "\"%(user_pubkey_update)s\"> 链接 更新\n" " " -#: templates/_modal.html:21 -msgid "Close" -msgstr "关闭" - -#: templates/_nav.html:10 users/views/group.py:28 users/views/group.py:44 -#: users/views/group.py:62 users/views/group.py:79 users/views/group.py:95 -#: users/views/login.py:332 users/views/login.py:390 users/views/user.py:67 -#: users/views/user.py:82 users/views/user.py:104 users/views/user.py:180 -#: users/views/user.py:336 users/views/user.py:386 users/views/user.py:421 +#: templates/_nav.html:10 users/views/group.py:27 users/views/group.py:43 +#: users/views/group.py:61 users/views/group.py:78 users/views/group.py:94 +#: users/views/login.py:333 users/views/login.py:397 users/views/user.py:68 +#: users/views/user.py:83 users/views/user.py:111 users/views/user.py:193 +#: users/views/user.py:349 users/views/user.py:399 users/views/user.py:434 msgid "Users" msgstr "用户管理" -#: templates/_nav.html:13 users/views/user.py:68 +#: templates/_nav.html:13 users/views/user.py:69 msgid "User list" msgstr "用户列表" @@ -2094,14 +2103,14 @@ msgstr "命令记录" msgid "Web terminal" msgstr "Web终端" -#: templates/_nav.html:51 terminal/views/command.py:49 +#: templates/_nav.html:52 terminal/views/command.py:50 #: terminal/views/session.py:75 terminal/views/session.py:93 #: terminal/views/session.py:115 terminal/views/terminal.py:31 #: terminal/views/terminal.py:46 terminal/views/terminal.py:58 msgid "Terminal" msgstr "终端管理" -#: templates/_nav.html:56 +#: templates/_nav.html:59 msgid "Job Center" msgstr "作业中心" @@ -2117,11 +2126,11 @@ msgstr "验证码" msgid "Filters" msgstr "过滤" -#: terminal/backends/command/models.py:13 +#: terminal/backends/command/models.py:15 msgid "Input" msgstr "输入" -#: terminal/backends/command/models.py:15 +#: terminal/backends/command/models.py:17 #: terminal/templates/terminal/command_list.html:75 #: terminal/templates/terminal/terminal_list.html:33 msgid "Session" @@ -2140,62 +2149,62 @@ msgstr "" "录像文件支持存储到服务器端硬盘、AWS S3、 阿里云 OSS 中,默认存储到服务器端硬" "盘, 更多查看文档" -#: terminal/models.py:17 +#: terminal/models.py:18 msgid "Remote Address" msgstr "远端地址" -#: terminal/models.py:18 +#: terminal/models.py:19 msgid "SSH Port" msgstr "SSH端口" -#: terminal/models.py:19 +#: terminal/models.py:20 msgid "HTTP Port" msgstr "HTTP端口" -#: terminal/models.py:98 +#: terminal/models.py:99 msgid "Session Online" msgstr "在线会话" -#: terminal/models.py:99 +#: terminal/models.py:100 msgid "CPU Usage" msgstr "CPU使用" -#: terminal/models.py:100 +#: terminal/models.py:101 msgid "Memory Used" msgstr "内存使用" -#: terminal/models.py:101 +#: terminal/models.py:102 msgid "Connections" msgstr "连接数" -#: terminal/models.py:102 +#: terminal/models.py:103 msgid "Threads" msgstr "线程数" -#: terminal/models.py:103 +#: terminal/models.py:104 msgid "Boot Time" msgstr "运行时间" -#: terminal/models.py:132 terminal/templates/terminal/session_list.html:104 +#: terminal/models.py:133 terminal/templates/terminal/session_list.html:104 msgid "Replay" msgstr "回放" -#: terminal/models.py:133 terminal/templates/terminal/command_list.html:55 +#: terminal/models.py:134 terminal/templates/terminal/command_list.html:55 #: terminal/templates/terminal/command_list.html:71 #: terminal/templates/terminal/session_detail.html:48 #: terminal/templates/terminal/session_list.html:77 msgid "Command" msgstr "命令" -#: terminal/models.py:136 +#: terminal/models.py:137 msgid "Date last active" msgstr "最后活跃日期" -#: terminal/models.py:138 +#: terminal/models.py:139 msgid "Date end" msgstr "结束日期" -#: terminal/models.py:155 +#: terminal/models.py:156 msgid "Args" msgstr "参数" @@ -2213,7 +2222,7 @@ msgid "Session detail" msgstr "会话详情" #: terminal/templates/terminal/session_detail.html:28 -#: terminal/views/command.py:50 +#: terminal/views/command.py:51 msgid "Command list" msgstr "命令记录列表" @@ -2329,7 +2338,7 @@ msgid "" "You should use your ssh client tools connect terminal: {}

{}" msgstr "你可以使用ssh客户端工具连接终端" -#: users/api.py:226 users/templates/users/login.html:50 +#: users/api.py:232 users/templates/users/login.html:50 msgid "Log in frequently and try again later" msgstr "登录频繁, 稍后重试" @@ -2384,11 +2393,11 @@ msgstr "" msgid "Invalid token or cache refreshed." msgstr "" -#: users/forms.py:39 +#: users/forms.py:41 msgid "MFA code" msgstr "MFA 验证码" -#: users/forms.py:50 users/models/user.py:59 +#: users/forms.py:52 users/models/user.py:61 #: users/templates/users/_select_user_modal.html:15 #: users/templates/users/user_detail.html:87 #: users/templates/users/user_list.html:25 @@ -2396,31 +2405,31 @@ msgstr "MFA 验证码" msgid "Role" msgstr "角色" -#: users/forms.py:53 users/forms.py:202 +#: users/forms.py:55 users/forms.py:228 msgid "ssh public key" msgstr "ssh公钥" -#: users/forms.py:54 users/forms.py:203 +#: users/forms.py:56 users/forms.py:229 msgid "ssh-rsa AAAA..." msgstr "" -#: users/forms.py:55 +#: users/forms.py:57 msgid "Paste user id_rsa.pub here." msgstr "复制用户公钥到这里" -#: users/forms.py:73 users/templates/users/user_detail.html:208 +#: users/forms.py:76 users/templates/users/user_detail.html:208 msgid "Join user groups" msgstr "添加到用户组" -#: users/forms.py:84 users/forms.py:217 +#: users/forms.py:110 users/forms.py:243 msgid "Public key should not be the same as your old one." msgstr "不能和原来的密钥相同" -#: users/forms.py:88 users/forms.py:221 users/serializers.py:48 +#: users/forms.py:114 users/forms.py:247 users/serializers.py:48 msgid "Not a valid ssh public key" msgstr "ssh密钥不合法" -#: users/forms.py:128 +#: users/forms.py:154 msgid "" "Tip: when enabled, you will enter the MFA binding process the next time you " "log in. you can also directly bind in \"personal information -> quick " @@ -2429,17 +2438,17 @@ msgstr "" "提示:启用之后您将会在下次登录时进入MFA绑定流程;您也可以在(个人信息->快速修" "改->更改MFA设置)中直接绑定!" -#: users/forms.py:138 +#: users/forms.py:164 msgid "* Enable MFA authentication to make the account more secure." msgstr "* 启用MFA认证,使账号更加安全." -#: users/forms.py:143 users/models/authentication.py:75 users/models/user.py:71 +#: users/forms.py:169 users/models/authentication.py:75 users/models/user.py:73 #: users/templates/users/first_login.html:45 #: users/templates/users/login_log_list.html:54 msgid "MFA" msgstr "MFA" -#: users/forms.py:148 +#: users/forms.py:174 msgid "" "In order to protect you and your company, please keep your account, password " "and key sensitive information properly. (for example: setting complex " @@ -2448,41 +2457,41 @@ msgstr "" "为了保护您和公司的安全,请妥善保管您的账户、密码和密钥等重要敏感信息;(如:" "设置复杂密码,启用MFA认证)" -#: users/forms.py:155 users/templates/users/first_login.html:48 +#: users/forms.py:181 users/templates/users/first_login.html:48 #: users/templates/users/first_login.html:107 #: users/templates/users/first_login.html:130 msgid "Finish" msgstr "完成" -#: users/forms.py:161 +#: users/forms.py:187 msgid "Old password" msgstr "原来密码" -#: users/forms.py:166 +#: users/forms.py:192 msgid "New password" msgstr "新密码" -#: users/forms.py:171 +#: users/forms.py:197 msgid "Confirm password" msgstr "确认密码" -#: users/forms.py:181 +#: users/forms.py:207 msgid "Old password error" msgstr "原来密码错误" -#: users/forms.py:189 +#: users/forms.py:215 msgid "Password does not match" msgstr "密码不一致" -#: users/forms.py:200 +#: users/forms.py:226 msgid "Automatically configure and download the SSH key" msgstr "自动配置并下载SSH密钥" -#: users/forms.py:204 +#: users/forms.py:230 msgid "Paste your id_rsa.pub here." msgstr "复制你的公钥到这里" -#: users/forms.py:232 users/models/user.py:79 +#: users/forms.py:258 users/models/user.py:81 #: users/templates/users/first_login.html:42 #: users/templates/users/user_password_update.html:45 #: users/templates/users/user_profile.html:68 @@ -2545,49 +2554,49 @@ msgstr "状态" msgid "Date login" msgstr "登录日期" -#: users/models/user.py:30 users/models/user.py:341 +#: users/models/user.py:32 users/models/user.py:356 msgid "Administrator" msgstr "管理员" -#: users/models/user.py:32 +#: users/models/user.py:34 msgid "Application" msgstr "应用程序" -#: users/models/user.py:35 users/templates/users/user_profile.html:92 +#: users/models/user.py:37 users/templates/users/user_profile.html:92 #: users/templates/users/user_profile.html:163 #: users/templates/users/user_profile.html:166 msgid "Disable" msgstr "禁用" -#: users/models/user.py:36 users/templates/users/user_profile.html:90 +#: users/models/user.py:38 users/templates/users/user_profile.html:90 #: users/templates/users/user_profile.html:170 msgid "Enable" msgstr "启用" -#: users/models/user.py:37 users/templates/users/user_profile.html:88 +#: users/models/user.py:39 users/templates/users/user_profile.html:88 msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:51 users/templates/users/user_detail.html:71 +#: users/models/user.py:53 users/templates/users/user_detail.html:71 #: users/templates/users/user_profile.html:59 msgid "Email" msgstr "邮件" -#: users/models/user.py:62 +#: users/models/user.py:64 msgid "Avatar" msgstr "头像" -#: users/models/user.py:65 users/templates/users/user_detail.html:82 +#: users/models/user.py:67 users/templates/users/user_detail.html:82 msgid "Wechat" msgstr "微信" -#: users/models/user.py:94 users/templates/users/user_detail.html:103 +#: users/models/user.py:96 users/templates/users/user_detail.html:103 #: users/templates/users/user_list.html:27 #: users/templates/users/user_profile.html:100 msgid "Source" msgstr "用户来源" -#: users/models/user.py:344 +#: users/models/user.py:359 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" @@ -2730,7 +2739,7 @@ msgid "Setting" msgstr "设置" #: users/templates/users/user_create.html:4 -#: users/templates/users/user_list.html:16 users/views/user.py:82 +#: users/templates/users/user_list.html:16 users/views/user.py:83 msgid "Create user" msgstr "创建用户" @@ -2739,7 +2748,7 @@ msgid "Reset link will be generated and sent to the user. " msgstr "生成重置密码连接,通过邮件发送给用户" #: users/templates/users/user_detail.html:19 -#: users/templates/users/user_granted_asset.html:18 users/views/user.py:181 +#: users/templates/users/user_granted_asset.html:18 users/views/user.py:194 msgid "User detail" msgstr "用户详情" @@ -2833,7 +2842,7 @@ msgstr "取消" #: users/templates/users/user_group_detail.html:22 #: users/templates/users/user_group_granted_asset.html:18 -#: users/views/group.py:80 +#: users/views/group.py:79 msgid "User group detail" msgstr "用户组详情" @@ -2841,7 +2850,7 @@ msgstr "用户组详情" msgid "Add user" msgstr "添加用户" -#: users/templates/users/user_group_list.html:5 users/views/group.py:45 +#: users/templates/users/user_group_list.html:5 users/views/group.py:44 msgid "Create user group" msgstr "创建用户组" @@ -2883,8 +2892,8 @@ msgstr "用户删除失败" msgid "Administrator Settings force MFA login" msgstr "管理员设置强制使用MFA登录" -#: users/templates/users/user_profile.html:116 users/views/user.py:211 -#: users/views/user.py:265 +#: users/templates/users/user_profile.html:116 users/views/user.py:224 +#: users/views/user.py:278 msgid "User groups" msgstr "用户组" @@ -2930,10 +2939,34 @@ msgid "" "corresponding private key." msgstr "新的公钥已设置成功,请下载对应的私钥" -#: users/templates/users/user_update.html:4 users/views/user.py:105 +#: users/templates/users/user_update.html:4 users/views/user.py:112 msgid "Update user" msgstr "更新用户" +#: users/templates/users/user_update.html:34 +msgid "Very weak" +msgstr "很弱" + +#: users/templates/users/user_update.html:35 +msgid "Weak" +msgstr "弱" + +#: users/templates/users/user_update.html:36 +msgid "Normal" +msgstr "正常" + +#: users/templates/users/user_update.html:37 +msgid "Medium" +msgstr "一般" + +#: users/templates/users/user_update.html:38 +msgid "Strong" +msgstr "强" + +#: users/templates/users/user_update.html:39 +msgid "Very strong" +msgstr "很强" + #: users/utils.py:41 msgid "Create account successfully" msgstr "创建账户成功" @@ -3072,119 +3105,122 @@ msgstr "密码或密钥不合法" msgid "Bit" msgstr " 位" -#: users/views/group.py:29 +#: users/views/group.py:28 msgid "User group list" msgstr "用户组列表" -#: users/views/group.py:63 +#: users/views/group.py:62 msgid "Update user group" msgstr "更新用户组" -#: users/views/group.py:96 +#: users/views/group.py:95 msgid "User group granted asset" msgstr "用户组授权资产" -#: users/views/login.py:76 +#: users/views/login.py:77 msgid "Please enable cookies and try again." msgstr "设置你的浏览器支持cookie" -#: users/views/login.py:180 users/views/user.py:506 users/views/user.py:531 +#: users/views/login.py:181 users/views/user.py:519 users/views/user.py:544 msgid "MFA code invalid" msgstr "MFA码认证失败" -#: users/views/login.py:209 +#: users/views/login.py:210 msgid "Logout success" msgstr "退出登录成功" -#: users/views/login.py:210 +#: users/views/login.py:211 msgid "Logout success, return login page" msgstr "退出登录成功,返回到登录页面" -#: users/views/login.py:226 +#: users/views/login.py:227 msgid "Email address invalid, please input again" msgstr "邮箱地址错误,重新输入" -#: users/views/login.py:239 +#: users/views/login.py:240 msgid "Send reset password message" msgstr "发送重置密码邮件" -#: users/views/login.py:240 +#: users/views/login.py:241 msgid "Send reset password mail success, login your mail box and follow it " msgstr "" "发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)" -#: users/views/login.py:253 +#: users/views/login.py:254 msgid "Reset password success" msgstr "重置密码成功" -#: users/views/login.py:254 +#: users/views/login.py:255 msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: users/views/login.py:275 users/views/login.py:288 +#: users/views/login.py:276 users/views/login.py:289 msgid "Token invalid or expired" msgstr "Token错误或失效" -#: users/views/login.py:284 +#: users/views/login.py:285 msgid "Password not same" msgstr "密码不一致" -#: users/views/login.py:294 users/views/user.py:120 users/views/user.py:404 +#: users/views/login.py:295 users/views/user.py:127 users/views/user.py:417 msgid "* Your password does not meet the requirements" msgstr "* 您的密码不符合要求" -#: users/views/login.py:332 +#: users/views/login.py:333 msgid "First login" msgstr "首次登陆" -#: users/views/login.py:391 +#: users/views/login.py:398 msgid "Login log list" msgstr "登录日志" -#: users/views/user.py:131 +#: users/views/user.py:144 msgid "Bulk update user success" msgstr "批量更新用户成功" -#: users/views/user.py:240 +#: users/views/user.py:253 msgid "Invalid file." msgstr "文件不合法" -#: users/views/user.py:337 +#: users/views/user.py:350 msgid "User granted assets" msgstr "用户授权资产" -#: users/views/user.py:368 +#: users/views/user.py:381 msgid "Profile setting" msgstr "个人信息设置" -#: users/views/user.py:387 +#: users/views/user.py:400 msgid "Password update" msgstr "密码更新" -#: users/views/user.py:422 +#: users/views/user.py:435 msgid "Public key update" msgstr "密钥更新" -#: users/views/user.py:463 +#: users/views/user.py:476 msgid "Password invalid" msgstr "用户名或密码无效" -#: users/views/user.py:557 +#: users/views/user.py:570 msgid "MFA enable success" msgstr "MFA 绑定成功" -#: users/views/user.py:558 +#: users/views/user.py:571 msgid "MFA enable success, return login page" msgstr "MFA 绑定成功,返回到登录页面" -#: users/views/user.py:560 +#: users/views/user.py:573 msgid "MFA disable success" msgstr "MFA 解绑成功" -#: users/views/user.py:561 +#: users/views/user.py:574 msgid "MFA disable success, return login page" msgstr "MFA 解绑成功,返回登录页面" +#~ msgid "* required Must set exact system platform, Windows, Linux ..." +#~ msgstr "* required 必须准确设置操作系统平台,如Windows, Linux ..." + #~ msgid "Unblock user successfully. " #~ msgstr "解除登录限制成功" diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index dfe696f36..72128fa2b 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -685,7 +685,7 @@ function popoverPasswordRules(password_check_rules, $el) { } // 初始化弹窗popover -function initPopover($container, $progress, $idPassword, $el, password_check_rules){ +function initPopover($container, $progress, $idPassword, $el, password_check_rules, i18n_fallback){ options = {}; // User Interface options.ui = { @@ -697,6 +697,14 @@ function initPopover($container, $progress, $idPassword, $el, password_check_rul showProgressbar: true, showVerdictsInsideProgressBar: true }; + options.i18n = { + fallback: i18n_fallback, + t: function (key) { + var result = ''; + result = options.i18n.fallback[key]; + return result === key ? '' : result; + } + }; $idPassword.pwstrength(options); popoverPasswordRules(password_check_rules, $el); } diff --git a/apps/users/forms.py b/apps/users/forms.py index 2ffc11b68..d1bcf44b5 100644 --- a/apps/users/forms.py +++ b/apps/users/forms.py @@ -78,6 +78,30 @@ class UserCreateUpdateForm(OrgModelForm): ) } + def __init__(self, *args, **kwargs): + self.request = kwargs.pop("request", None) + super(UserCreateUpdateForm, self).__init__(*args, **kwargs) + + roles = [] + # Super admin user + if self.request.user.is_superuser: + roles.append((User.ROLE_ADMIN, dict(User.ROLE_CHOICES).get(User.ROLE_ADMIN))) + roles.append((User.ROLE_USER, dict(User.ROLE_CHOICES).get(User.ROLE_USER))) + + # Org admin user + else: + user = kwargs.get('instance') + # Update + if user: + role = kwargs.get('instance').role + roles.append((role, dict(User.ROLE_CHOICES).get(role))) + # Create + else: + roles.append((User.ROLE_USER, dict(User.ROLE_CHOICES).get(User.ROLE_USER))) + + field = self.fields['role'] + field.choices = set(roles) + def clean_public_key(self): public_key = self.cleaned_data['public_key'] if not public_key: diff --git a/apps/users/templates/users/reset_password.html b/apps/users/templates/users/reset_password.html index 3d669a1e5..7071f4cac 100644 --- a/apps/users/templates/users/reset_password.html +++ b/apps/users/templates/users/reset_password.html @@ -100,10 +100,18 @@ progress = $('#id_progress'), password_check_rules = {{ password_check_rules|safe }}, minLength = {{ min_length }}, - top = 146, left = 170; + top = 146, left = 170, + i18n_fallback = { + "veryWeak": "{% trans 'Very weak' %}", + "weak": "{% trans 'Weak' %}", + "normal": "{% trans 'Normal' %}", + "medium": "{% trans 'Medium' %}", + "strong": "{% trans 'Strong' %}", + "veryStrong": "{% trans 'Very strong' %}" + }; // 初始化popover - initPopover(container, progress, idPassword, el, password_check_rules); + initPopover(container, progress, idPassword, el, password_check_rules, i18n_fallback); // 监听事件 idPassword.on('focus', function () { diff --git a/apps/users/templates/users/user_password_update.html b/apps/users/templates/users/user_password_update.html index 50c428ee6..2943665f2 100644 --- a/apps/users/templates/users/user_password_update.html +++ b/apps/users/templates/users/user_password_update.html @@ -93,10 +93,18 @@ password_check_rules = {{ password_check_rules|safe }}, minLength = {{ min_length }}, top = idPassword.offset().top - $('.navbar').outerHeight(true) - $('.page-heading').outerHeight(true) - 10 + 34, - left = 377; + left = 377, + i18n_fallback = { + "veryWeak": "{% trans 'Very weak' %}", + "weak": "{% trans 'Weak' %}", + "normal": "{% trans 'Normal' %}", + "medium": "{% trans 'Medium' %}", + "strong": "{% trans 'Strong' %}", + "veryStrong": "{% trans 'Very strong' %}" + }; // 初始化popover - initPopover(container, progress, idPassword, el, password_check_rules); + initPopover(container, progress, idPassword, el, password_check_rules, i18n_fallback); // 监听事件 idPassword.on('focus', function () { diff --git a/apps/users/templates/users/user_update.html b/apps/users/templates/users/user_update.html index b51610587..5026b090d 100644 --- a/apps/users/templates/users/user_update.html +++ b/apps/users/templates/users/user_update.html @@ -29,10 +29,18 @@ password_check_rules = {{ password_check_rules|safe }}, minLength = {{ min_length }}, top = idPassword.offset().top - $('.navbar').outerHeight(true) - $('.page-heading').outerHeight(true) - 10 + 34, - left = 377; + left = 377, + i18n_fallback = { + "veryWeak": "{% trans 'Very weak' %}", + "weak": "{% trans 'Weak' %}", + "normal": "{% trans 'Normal' %}", + "medium": "{% trans 'Medium' %}", + "strong": "{% trans 'Strong' %}", + "veryStrong": "{% trans 'Very strong' %}" + }; // 初始化popover - initPopover(container, progress, idPassword, el, password_check_rules); + initPopover(container, progress, idPassword, el, password_check_rules, i18n_fallback); // 监听事件 idPassword.on('focus', function () { diff --git a/apps/users/views/user.py b/apps/users/views/user.py index 624ba3786..cb0b45bad 100644 --- a/apps/users/views/user.py +++ b/apps/users/views/user.py @@ -90,6 +90,12 @@ class UserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): post_user_create.send(self.__class__, user=user) return super().form_valid(form) + def get_form_kwargs(self): + kwargs = super(UserCreateView, self).get_form_kwargs() + data = {'request': self.request} + kwargs.update(data) + return kwargs + class UserUpdateView(AdminUserRequiredMixin, SuccessMessageMixin, UpdateView): model = User @@ -123,6 +129,12 @@ class UserUpdateView(AdminUserRequiredMixin, SuccessMessageMixin, UpdateView): return self.form_invalid(form) return super().form_valid(form) + def get_form_kwargs(self): + kwargs = super(UserUpdateView, self).get_form_kwargs() + data = {'request': self.request} + kwargs.update(data) + return kwargs + class UserBulkUpdateView(AdminUserRequiredMixin, TemplateView): model = User