Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
327febaf
Commit
327febaf
authored
Jun 24, 2019
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Update] 更改查看认证需要的MFA时间间隔
parent
0f8d4f5b
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
216 additions
and
197 deletions
+216
-197
asset_user.py
apps/assets/api/asset_user.py
+6
-12
_asset_user_list.html
apps/assets/templates/assets/_asset_user_list.html
+3
-2
auth.py
apps/authentication/api/auth.py
+1
-1
permissions.py
apps/common/permissions.py
+8
-0
conf.py
apps/jumpserver/conf.py
+1
-1
context_processor.py
apps/jumpserver/context_processor.py
+1
-0
settings.py
apps/jumpserver/settings.py
+1
-0
django.mo
apps/locale/zh/LC_MESSAGES/django.mo
+0
-0
django.po
apps/locale/zh/LC_MESSAGES/django.po
+195
-181
No files found.
apps/assets/api/asset_user.py
View file @
327febaf
...
...
@@ -10,7 +10,7 @@ from rest_framework import filters
from
rest_framework_bulk
import
BulkModelViewSet
from
django.shortcuts
import
get_object_or_404
from
common.permissions
import
IsOrgAdminOrAppUser
from
common.permissions
import
IsOrgAdminOrAppUser
,
NeedMFAVerify
from
common.utils
import
get_object_or_none
,
get_logger
from
common.mixins
import
IDInCacheFilterMixin
from
..backends
import
AssetUserManager
...
...
@@ -57,7 +57,7 @@ class AssetUserSearchBackend(filters.BaseFilterBackend):
class
AssetUserViewSet
(
IDInCacheFilterMixin
,
BulkModelViewSet
):
pagination_class
=
LimitOffsetPagination
serializer_class
=
serializers
.
AssetUserSerializer
permission_classes
=
(
IsOrgAdminOrAppUser
,
)
permission_classes
=
[
IsOrgAdminOrAppUser
]
http_method_names
=
[
'get'
,
'post'
]
filter_fields
=
[
"id"
,
"ip"
,
"hostname"
,
"username"
,
"asset_id"
,
"node_id"
,
...
...
@@ -111,22 +111,16 @@ class AssetUserExportViewSet(AssetUserViewSet):
serializer_class
=
serializers
.
AssetUserExportSerializer
http_method_names
=
[
'get'
]
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
otp_last_verify
=
request
.
session
.
get
(
"OTP_LAST_VERIFY_TIME"
)
if
not
otp_last_verify
or
time
.
time
()
-
int
(
otp_last_verify
)
>
600
:
return
Response
({
"error"
:
"Need MFA confirm mfa auth"
},
status
=
403
)
return
super
()
.
list
(
request
,
*
args
,
**
kwargs
)
def
get_permissions
(
self
):
self
.
permission_classes
.
append
(
NeedMFAVerify
)
return
super
()
.
get_permissions
()
class
AssetUserAuthInfoApi
(
generics
.
RetrieveAPIView
):
serializer_class
=
serializers
.
AssetUserAuthInfoSerializer
permission_classes
=
(
IsOrgAdminOrAppUser
,)
permission_classes
=
[
IsOrgAdminOrAppUser
,
NeedMFAVerify
]
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
otp_last_verify
=
request
.
session
.
get
(
"OTP_LAST_VERIFY_TIME"
)
if
not
otp_last_verify
or
time
.
time
()
-
int
(
otp_last_verify
)
>
600
:
return
Response
({
"error"
:
"Need MFA confirm mfa auth"
},
status
=
403
)
instance
=
self
.
get_object
()
serializer
=
self
.
get_serializer
(
instance
)
status_code
=
status
.
HTTP_200_OK
...
...
apps/assets/templates/assets/_asset_user_list.html
View file @
327febaf
...
...
@@ -32,8 +32,9 @@ var assetUserListUrl = "{% url "api-assets:asset-user-list" %}";
var
assetUserTable
;
var
needPush
=
false
;
var
prefer
=
null
;
var
lastMFATime
=
"{{ request.session.
OTP_LAST
_VERIFY_TIME }}"
;
var
lastMFATime
=
"{{ request.session.
MFA
_VERIFY_TIME }}"
;
var
testDatetime
=
"{% trans 'Test datetime: ' %}"
;
var
mfaVerifyTTL
=
"{{ SECURITY_MFA_VERIFY_TTL }}"
;
function
initAssetUserTable
()
{
var
options
=
{
...
...
@@ -109,7 +110,7 @@ $(document).ready(function(){
authUsername
=
$
(
this
).
data
(
'user'
);
var
now
=
new
Date
();
var
nowTime
=
now
.
getTime
()
/
1000
;
if
(
!
lastMFATime
||
nowTime
-
lastMFATime
>
60
*
10
)
{
if
(
!
lastMFATime
||
nowTime
-
lastMFATime
>
mfaVerifyTTL
)
{
mfaFor
=
"viewAuth"
;
$
(
"#mfa_auth_confirm"
).
modal
(
"show"
);
}
else
{
...
...
apps/authentication/api/auth.py
View file @
327febaf
...
...
@@ -194,7 +194,7 @@ class UserOtpVerifyApi(CreateAPIView):
code
=
serializer
.
validated_data
[
"code"
]
if
request
.
user
.
check_otp
(
code
):
request
.
session
[
"
OTP_LAST
_VERIFY_TIME"
]
=
int
(
time
.
time
())
request
.
session
[
"
MFA
_VERIFY_TIME"
]
=
int
(
time
.
time
())
return
Response
({
"ok"
:
"1"
})
else
:
return
Response
({
"error"
:
"Code not valid"
},
status
=
400
)
...
...
apps/common/permissions.py
View file @
327febaf
...
...
@@ -132,3 +132,11 @@ class PermissionsMixin(UserPassesTestMixin):
if
not
permission_class
()
.
has_permission
(
self
.
request
,
self
):
return
False
return
True
class
NeedMFAVerify
(
permissions
.
BasePermission
):
def
has_permission
(
self
,
request
,
view
):
mfa_verify_time
=
request
.
session
.
get
(
'MFA_VERIFY_TIME'
,
0
)
if
time
.
time
()
-
mfa_verify_time
<
settings
.
SECURITY_MFA_VERIFY_TTL
:
return
True
return
False
apps/jumpserver/conf.py
View file @
327febaf
...
...
@@ -374,7 +374,7 @@ defaults = {
'HTTP_LISTEN_PORT'
:
8080
,
'LOGIN_LOG_KEEP_DAYS'
:
90
,
'ASSETS_PERM_CACHE_TIME'
:
3600
,
'SECURITY_MFA_VERIFY_TTL'
:
3600
,
}
...
...
apps/jumpserver/context_processor.py
View file @
327febaf
...
...
@@ -17,6 +17,7 @@ def jumpserver_processor(request):
'VERSION'
:
settings
.
VERSION
,
'COPYRIGHT'
:
'FIT2CLOUD 飞致云'
+
' © 2014-2019'
,
'SECURITY_COMMAND_EXECUTION'
:
settings
.
SECURITY_COMMAND_EXECUTION
,
'SECURITY_MFA_VERIFY_TTL'
:
settings
.
SECURITY_MFA_VERIFY_TTL
,
}
return
context
...
...
apps/jumpserver/settings.py
View file @
327febaf
...
...
@@ -565,6 +565,7 @@ SECURITY_PASSWORD_RULES = [
'SECURITY_PASSWORD_NUMBER'
,
'SECURITY_PASSWORD_SPECIAL_CHAR'
]
SECURITY_MFA_VERIFY_TTL
=
CONFIG
.
SECURITY_MFA_VERIFY_TTL
TERMINAL_PASSWORD_AUTH
=
CONFIG
.
TERMINAL_PASSWORD_AUTH
TERMINAL_PUBLIC_KEY_AUTH
=
CONFIG
.
TERMINAL_PUBLIC_KEY_AUTH
...
...
apps/locale/zh/LC_MESSAGES/django.mo
View file @
327febaf
No preview for this file type
apps/locale/zh/LC_MESSAGES/django.po
View file @
327febaf
...
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-2
0 17:55
+0800\n"
"POT-Creation-Date: 2019-06-2
4 20:17
+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
...
...
@@ -76,9 +76,9 @@ msgstr "运行参数"
#: applications/templates/applications/remote_app_list.html:22
#: applications/templates/applications/user_remote_app_list.html:18
#: assets/forms/domain.py:15 assets/forms/label.py:13
#: assets/models/asset.py:
315 assets/models/authbook.py:27
#: assets/serializers/admin_user.py:
24 assets/serializers/asset_user.py:105
#: assets/serializers/system_user.py:2
8
#: assets/models/asset.py:
298 assets/models/authbook.py:24
#: assets/serializers/admin_user.py:
35 assets/serializers/asset_user.py:106
#: assets/serializers/system_user.py:2
9
#: assets/templates/assets/admin_user_list.html:49
#: assets/templates/assets/domain_detail.html:60
#: assets/templates/assets/domain_list.html:26
...
...
@@ -112,7 +112,7 @@ msgstr "资产"
#: applications/templates/applications/remote_app_detail.html:61
#: applications/templates/applications/remote_app_list.html:23
#: applications/templates/applications/user_remote_app_list.html:19
#: assets/models/user.py:
251
assets/templates/assets/user_asset_list.html:172
#: assets/models/user.py:
160
assets/templates/assets/user_asset_list.html:172
#: audits/models.py:20 audits/templates/audits/ftp_log_list.html:49
#: audits/templates/audits/ftp_log_list.html:72
#: perms/forms/asset_permission.py:52 perms/models/asset_permission.py:39
...
...
@@ -135,7 +135,7 @@ msgstr "系统用户"
#: applications/templates/applications/remote_app_list.html:20
#: applications/templates/applications/user_remote_app_list.html:16
#: assets/forms/domain.py:73 assets/forms/user.py:84 assets/forms/user.py:148
#: assets/models/asset.py:7
2
assets/models/base.py:27
#: assets/models/asset.py:7
0
assets/models/base.py:27
#: assets/models/cluster.py:18 assets/models/cmd_filter.py:20
#: assets/models/domain.py:20 assets/models/group.py:20
#: assets/models/label.py:18 assets/templates/assets/admin_user_detail.html:56
...
...
@@ -206,7 +206,7 @@ msgstr "参数"
#: applications/models/remote_app.py:43
#: applications/templates/applications/remote_app_detail.html:77
#: assets/models/asset.py:13
2
assets/models/base.py:35
#: assets/models/asset.py:13
0
assets/models/base.py:35
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:25
#: assets/models/cmd_filter.py:58 assets/models/group.py:21
#: assets/templates/assets/admin_user_detail.html:68
...
...
@@ -230,10 +230,9 @@ msgstr "创建者"
# msgstr "创建者"
#: applications/models/remote_app.py:46
#: applications/templates/applications/remote_app_detail.html:73
#: assets/models/asset.py:13
3
assets/models/base.py:33
#: assets/models/asset.py:13
1
assets/models/base.py:33
#: assets/models/cluster.py:26 assets/models/domain.py:23
#: assets/models/group.py:22 assets/models/label.py:25
#: assets/serializers/admin_user.py:38
#: assets/templates/assets/admin_user_detail.html:64
#: assets/templates/assets/cmd_filter_detail.html:69
#: assets/templates/assets/domain_detail.html:68
...
...
@@ -259,7 +258,7 @@ msgstr "创建日期"
#: applications/templates/applications/remote_app_detail.html:81
#: applications/templates/applications/remote_app_list.html:24
#: applications/templates/applications/user_remote_app_list.html:20
#: assets/models/asset.py:13
4
assets/models/base.py:32
#: assets/models/asset.py:13
2
assets/models/base.py:32
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:22
#: assets/models/cmd_filter.py:55 assets/models/domain.py:21
#: assets/models/domain.py:53 assets/models/group.py:23
...
...
@@ -391,7 +390,7 @@ msgstr "提交"
#: assets/templates/assets/cmd_filter_rule_list.html:19
#: assets/templates/assets/domain_detail.html:18
#: assets/templates/assets/domain_gateway_list.html:20
#: assets/templates/assets/system_user_asset.html:18
#: assets/templates/assets/system_user_asset
s
.html:18
#: assets/templates/assets/system_user_detail.html:18
#: ops/templates/ops/adhoc_history.html:130
#: ops/templates/ops/task_adhoc.html:116
...
...
@@ -412,13 +411,13 @@ msgstr "详情"
#: applications/templates/applications/remote_app_detail.html:21
#: applications/templates/applications/remote_app_list.html:56
#: assets/templates/assets/_asset_user_list.html:6
2
#: assets/templates/assets/_asset_user_list.html:6
9
#: assets/templates/assets/admin_user_detail.html:24
#: assets/templates/assets/admin_user_list.html:29
#: assets/templates/assets/admin_user_list.html:11
2
#: assets/templates/assets/admin_user_list.html:11
4
#: assets/templates/assets/asset_detail.html:27
#: assets/templates/assets/asset_list.html:86
#: assets/templates/assets/asset_list.html:19
0
#: assets/templates/assets/asset_list.html:19
6
#: assets/templates/assets/cmd_filter_detail.html:29
#: assets/templates/assets/cmd_filter_list.html:58
#: assets/templates/assets/cmd_filter_rule_list.html:86
...
...
@@ -429,7 +428,7 @@ msgstr "详情"
#: assets/templates/assets/label_list.html:39
#: assets/templates/assets/system_user_detail.html:26
#: assets/templates/assets/system_user_list.html:33
#: assets/templates/assets/system_user_list.html:11
8
audits/models.py:33
#: assets/templates/assets/system_user_list.html:11
9
audits/models.py:33
#: perms/templates/perms/asset_permission_detail.html:30
#: perms/templates/perms/asset_permission_list.html:181
#: perms/templates/perms/remote_app_permission_detail.html:30
...
...
@@ -458,9 +457,9 @@ msgstr "更新"
#: applications/templates/applications/remote_app_detail.html:25
#: applications/templates/applications/remote_app_list.html:57
#: assets/templates/assets/admin_user_detail.html:28
#: assets/templates/assets/admin_user_list.html:11
3
#: assets/templates/assets/admin_user_list.html:11
5
#: assets/templates/assets/asset_detail.html:31
#: assets/templates/assets/asset_list.html:19
1
#: assets/templates/assets/asset_list.html:19
7
#: assets/templates/assets/cmd_filter_detail.html:33
#: assets/templates/assets/cmd_filter_list.html:59
#: assets/templates/assets/cmd_filter_rule_list.html:87
...
...
@@ -470,7 +469,7 @@ msgstr "更新"
#: assets/templates/assets/domain_list.html:55
#: assets/templates/assets/label_list.html:40
#: assets/templates/assets/system_user_detail.html:30
#: assets/templates/assets/system_user_list.html:1
19
audits/models.py:34
#: assets/templates/assets/system_user_list.html:1
20
audits/models.py:34
#: ops/templates/ops/task_list.html:64
#: perms/templates/perms/asset_permission_detail.html:34
#: perms/templates/perms/asset_permission_list.html:182
...
...
@@ -599,17 +598,36 @@ msgstr "更新节点资产硬件信息: {}"
msgid "Test if the assets under the node are connectable: {}"
msgstr "测试节点下资产是否可连接: {}"
#: assets/forms/asset.py:45 assets/models/asset.py:103
#: assets/models/user.py:134 assets/templates/assets/asset_detail.html:194
#: assets/const.py:77 assets/models/utils.py:43
#: assets/templates/assets/admin_user_list.html:51
#: assets/templates/assets/system_user_list.html:57
msgid "Unreachable"
msgstr "不可达"
#: assets/const.py:78 assets/models/utils.py:44
#: assets/templates/assets/admin_user_list.html:50
#: assets/templates/assets/asset_list.html:107
#: assets/templates/assets/system_user_list.html:56
#: users/templates/users/user_group_granted_asset.html:47
msgid "Reachable"
msgstr "可连接"
#: assets/const.py:79 assets/models/utils.py:45 authentication/utils.py:9
#: xpack/plugins/license/models.py:78
msgid "Unknown"
msgstr "未知"
#: assets/forms/asset.py:45 assets/models/asset.py:101
#: assets/models/user.py:107 assets/templates/assets/asset_detail.html:194
#: assets/templates/assets/asset_detail.html:202
#: assets/templates/assets/system_user_asset.html:83
#: assets/templates/assets/system_user_asset
s
.html:83
#: perms/models/asset_permission.py:38
#: xpack/plugins/change_auth_plan/models.py:72
msgid "Nodes"
msgstr "节点"
#: assets/forms/asset.py:48 assets/forms/asset.py:83 assets/models/asset.py:10
7
#: assets/models/cluster.py:19 assets/models/user.py:
92
#: assets/forms/asset.py:48 assets/forms/asset.py:83 assets/models/asset.py:10
5
#: assets/models/cluster.py:19 assets/models/user.py:
65
#: assets/templates/assets/asset_detail.html:80 templates/_nav.html:24
#: xpack/plugins/cloud/models.py:124
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:65
...
...
@@ -626,7 +644,7 @@ msgstr "管理用户"
msgid "Label"
msgstr "标签"
#: assets/forms/asset.py:54 assets/forms/asset.py:89 assets/models/asset.py:10
2
#: assets/forms/asset.py:54 assets/forms/asset.py:89 assets/models/asset.py:10
0
#: assets/models/domain.py:26 assets/models/domain.py:52
#: assets/templates/assets/asset_detail.html:84
#: assets/templates/assets/user_asset_list.html:173
...
...
@@ -720,8 +738,8 @@ msgid "Password or private key passphrase"
msgstr "密码或密钥密码"
#: assets/forms/user.py:26 assets/models/base.py:29
#: assets/serializers/admin_user.py:
21 assets/serializers/asset_user.py:33
#: assets/serializers/asset_user.py:8
6
assets/serializers/system_user.py:16
#: assets/serializers/admin_user.py:
19 assets/serializers/asset_user.py:34
#: assets/serializers/asset_user.py:8
7
assets/serializers/system_user.py:16
#: assets/templates/assets/_asset_user_auth_update_modal.html:21
#: assets/templates/assets/_asset_user_auth_view_modal.html:27
#: authentication/forms.py:13
...
...
@@ -739,8 +757,8 @@ msgstr "密码或密钥密码"
msgid "Password"
msgstr "密码"
#: assets/forms/user.py:29 assets/serializers/asset_user.py:4
1
#: assets/serializers/asset_user.py:9
4
#: assets/forms/user.py:29 assets/serializers/asset_user.py:4
2
#: assets/serializers/asset_user.py:9
5
#: assets/templates/assets/_asset_user_auth_update_modal.html:27
#: users/models/user.py:90
msgid "Private key"
...
...
@@ -759,7 +777,7 @@ msgid "* Automatic login mode must fill in the username."
msgstr "自动登录模式,必须填写用户名"
#: assets/forms/user.py:151 assets/models/cmd_filter.py:31
#: assets/models/user.py:1
42
assets/templates/assets/_system_user.html:66
#: assets/models/user.py:1
15
assets/templates/assets/_system_user.html:66
#: assets/templates/assets/system_user_detail.html:165
msgid "Command filter"
msgstr "命令过滤器"
...
...
@@ -786,7 +804,7 @@ msgstr "如果选择手动登录模式,用户名和密码可以不填写"
msgid "Use comma split multi command, ex: /bin/whoami,/bin/ifconfig"
msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
#: assets/models/asset.py:7
3 assets/models/asset.py:98
#: assets/models/asset.py:7
1 assets/models/asset.py:96
#: assets/models/domain.py:50
#: assets/templates/assets/domain_gateway_list.html:69
#: assets/templates/assets/user_asset_list.html:168
...
...
@@ -794,8 +812,8 @@ msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
msgid "Port"
msgstr "端口"
#: assets/models/asset.py:9
3
assets/models/domain.py:49
#: assets/serializers/asset_user.py:2
8
#: assets/models/asset.py:9
1
assets/models/domain.py:49
#: assets/serializers/asset_user.py:2
9
#: assets/templates/assets/_asset_list_modal.html:46
#: assets/templates/assets/_asset_user_list.html:15
#: assets/templates/assets/asset_detail.html:64
...
...
@@ -811,7 +829,7 @@ msgstr "端口"
msgid "IP"
msgstr "IP"
#: assets/models/asset.py:9
4 assets/serializers/asset_user.py:27
#: assets/models/asset.py:9
2 assets/serializers/asset_user.py:28
#: assets/templates/assets/_asset_list_modal.html:45
#: assets/templates/assets/_asset_user_auth_update_modal.html:9
#: assets/templates/assets/_asset_user_auth_view_modal.html:15
...
...
@@ -828,8 +846,8 @@ msgstr "IP"
msgid "Hostname"
msgstr "主机名"
#: assets/models/asset.py:9
7 assets/models/asset.py:100
#: assets/models/domain.py:51 assets/models/user.py:1
37
#: assets/models/asset.py:9
5 assets/models/asset.py:98
#: assets/models/domain.py:51 assets/models/user.py:1
10
#: assets/templates/assets/asset_detail.html:72
#: assets/templates/assets/domain_gateway_list.html:70
#: assets/templates/assets/system_user_detail.html:70
...
...
@@ -839,115 +857,94 @@ msgstr "主机名"
msgid "Protocol"
msgstr "协议"
#: assets/models/asset.py:
101
assets/templates/assets/asset_detail.html:108
#: assets/models/asset.py:
99
assets/templates/assets/asset_detail.html:108
#: assets/templates/assets/user_asset_list.html:170
msgid "Platform"
msgstr "系统平台"
#: assets/models/asset.py:10
4
assets/models/cmd_filter.py:21
#: assets/models/asset.py:10
2
assets/models/cmd_filter.py:21
#: assets/models/domain.py:54 assets/models/label.py:22
#: assets/templates/assets/asset_detail.html:116
#: assets/templates/assets/user_asset_list.html:174
msgid "Is active"
msgstr "激活"
#: assets/models/asset.py:1
10
assets/templates/assets/asset_detail.html:68
#: assets/models/asset.py:1
08
assets/templates/assets/asset_detail.html:68
msgid "Public IP"
msgstr "公网IP"
#: assets/models/asset.py:1
11
assets/templates/assets/asset_detail.html:124
#: assets/models/asset.py:1
09
assets/templates/assets/asset_detail.html:124
msgid "Asset number"
msgstr "资产编号"
#: assets/models/asset.py:11
4
assets/templates/assets/asset_detail.html:88
#: assets/models/asset.py:11
2
assets/templates/assets/asset_detail.html:88
msgid "Vendor"
msgstr "制造商"
#: assets/models/asset.py:11
5
assets/templates/assets/asset_detail.html:92
#: assets/models/asset.py:11
3
assets/templates/assets/asset_detail.html:92
msgid "Model"
msgstr "型号"
#: assets/models/asset.py:11
6
assets/templates/assets/asset_detail.html:120
#: assets/models/asset.py:11
4
assets/templates/assets/asset_detail.html:120
msgid "Serial number"
msgstr "序列号"
#: assets/models/asset.py:11
8
#: assets/models/asset.py:11
6
msgid "CPU model"
msgstr "CPU型号"
#: assets/models/asset.py:11
9
#: assets/models/asset.py:11
7
#: xpack/plugins/license/templates/license/license_detail.html:80
msgid "CPU count"
msgstr "CPU数量"
#: assets/models/asset.py:1
20
#: assets/models/asset.py:1
18
msgid "CPU cores"
msgstr "CPU核数"
#: assets/models/asset.py:1
21
#: assets/models/asset.py:1
19
msgid "CPU vcpus"
msgstr "CPU总数"
#: assets/models/asset.py:12
2
assets/templates/assets/asset_detail.html:100
#: assets/models/asset.py:12
0
assets/templates/assets/asset_detail.html:100
msgid "Memory"
msgstr "内存"
#: assets/models/asset.py:12
3
#: assets/models/asset.py:12
1
msgid "Disk total"
msgstr "硬盘大小"
#: assets/models/asset.py:12
4
#: assets/models/asset.py:12
2
msgid "Disk info"
msgstr "硬盘信息"
#: assets/models/asset.py:12
6
assets/templates/assets/asset_detail.html:112
#: assets/models/asset.py:12
4
assets/templates/assets/asset_detail.html:112
#: assets/templates/assets/user_asset_list.html:171
msgid "OS"
msgstr "操作系统"
#: assets/models/asset.py:12
7
#: assets/models/asset.py:12
5
msgid "OS version"
msgstr "系统版本"
#: assets/models/asset.py:12
8
#: assets/models/asset.py:12
6
msgid "OS arch"
msgstr "系统架构"
#: assets/models/asset.py:12
9
#: assets/models/asset.py:12
7
msgid "Hostname raw"
msgstr "主机名原始"
#: assets/models/asset.py:1
31
assets/templates/assets/asset_create.html:46
#: assets/models/asset.py:1
29
assets/templates/assets/asset_create.html:46
#: assets/templates/assets/asset_detail.html:231 templates/_nav.html:26
msgid "Labels"
msgstr "标签管理"
#: assets/models/asset.py:140 assets/models/base.py:39
#: assets/serializers/admin_user.py:23 assets/serializers/system_user.py:19
#: assets/templates/assets/admin_user_list.html:51
#: assets/templates/assets/system_user_list.html:57
msgid "Unreachable"
msgstr "不可达"
#: assets/models/asset.py:141 assets/models/base.py:40
#: assets/serializers/admin_user.py:25 assets/serializers/system_user.py:27
#: assets/templates/assets/admin_user_list.html:50
#: assets/templates/assets/asset_list.html:107
#: assets/templates/assets/system_user_list.html:56
#: users/templates/users/user_group_granted_asset.html:47
msgid "Reachable"
msgstr "可连接"
#: assets/models/asset.py:142 assets/models/base.py:41
#: authentication/utils.py:9 xpack/plugins/license/models.py:78
msgid "Unknown"
msgstr "未知"
#: assets/models/authbook.py:28 ops/templates/ops/task_detail.html:72
#: assets/models/authbook.py:25 ops/templates/ops/task_detail.html:72
msgid "Latest version"
msgstr "最新版本"
#: assets/models/authbook.py:2
9
#: assets/models/authbook.py:2
6
#: assets/templates/assets/_asset_user_list.html:17
#: ops/templates/ops/adhoc_history.html:58
#: ops/templates/ops/adhoc_history_detail.html:57
...
...
@@ -955,7 +952,7 @@ msgstr "最新版本"
msgid "Version"
msgstr "版本"
#: assets/models/authbook.py:3
7
#: assets/models/authbook.py:3
5
msgid "AuthBook"
msgstr ""
...
...
@@ -969,8 +966,7 @@ msgstr "ssh密钥"
msgid "SSH public key"
msgstr "ssh公钥"
#: assets/models/base.py:34 assets/serializers/admin_user.py:39
#: assets/templates/assets/cmd_filter_detail.html:73
#: assets/models/base.py:34 assets/templates/assets/cmd_filter_detail.html:73
#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:109
msgid "Date updated"
msgstr "更新日期"
...
...
@@ -1005,7 +1001,7 @@ msgid "Operator"
msgstr "运营商"
#: assets/models/cluster.py:36 assets/models/group.py:34
#: perms/utils/asset_permission.py:6
3
#: perms/utils/asset_permission.py:6
4
msgid "Default"
msgstr "默认"
...
...
@@ -1070,7 +1066,7 @@ msgstr "过滤器"
msgid "Type"
msgstr "类型"
#: assets/models/cmd_filter.py:51 assets/models/user.py:1
36
#: assets/models/cmd_filter.py:51 assets/models/user.py:1
09
#: assets/templates/assets/cmd_filter_rule_list.html:60
msgid "Priority"
msgstr "优先级"
...
...
@@ -1155,17 +1151,17 @@ msgstr "键"
msgid "New node"
msgstr "新节点"
#: assets/models/user.py:1
30
#: assets/models/user.py:1
03
msgid "Automatic login"
msgstr "自动登录"
#: assets/models/user.py:1
31
#: assets/models/user.py:1
04
msgid "Manually login"
msgstr "手动登录"
#: assets/models/user.py:1
35
#: assets/models/user.py:1
08
#: assets/templates/assets/_asset_group_bulk_update_modal.html:11
#: assets/templates/assets/system_user_asset.html:22
#: assets/templates/assets/system_user_asset
s
.html:22
#: assets/templates/assets/system_user_detail.html:22
#: assets/views/admin_user.py:30 assets/views/admin_user.py:49
#: assets/views/admin_user.py:66 assets/views/admin_user.py:82
...
...
@@ -1186,31 +1182,38 @@ msgstr "手动登录"
msgid "Assets"
msgstr "资产管理"
#: assets/models/user.py:1
38
assets/templates/assets/_system_user.html:59
#: assets/models/user.py:1
11
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:1
39
assets/templates/assets/system_user_detail.html:74
#: assets/models/user.py:1
12
assets/templates/assets/system_user_detail.html:74
msgid "Sudo"
msgstr "Sudo"
#: assets/models/user.py:1
40
assets/templates/assets/system_user_detail.html:79
#: assets/models/user.py:1
13
assets/templates/assets/system_user_detail.html:79
msgid "Shell"
msgstr "Shell"
#: assets/models/user.py:1
41
assets/templates/assets/system_user_detail.html:66
#: assets/models/user.py:1
14
assets/templates/assets/system_user_detail.html:66
#: assets/templates/assets/system_user_list.html:54
msgid "Login mode"
msgstr "登录模式"
#: assets/models/utils.py:
29
#: assets/models/utils.py:
35
#, python-format
msgid "%(value)s is not an even number"
msgstr "%(value)s is not an even number"
#: assets/serializers/asset.py:46 assets/templates/assets/asset_create.html:24
#: assets/serializers/admin_user.py:36 assets/serializers/asset.py:47
#: assets/serializers/asset_user.py:30 assets/serializers/system_user.py:30
#: assets/templates/assets/_asset_user_list.html:18
msgid "Connectivity"
msgstr "连接"
#: assets/serializers/asset.py:45 assets/serializers/asset.py:155
#: assets/templates/assets/asset_create.html:24
msgid "Protocols"
msgstr "协议组"
...
...
@@ -1218,20 +1221,15 @@ msgstr "协议组"
msgid "Hardware info"
msgstr "硬件信息"
#: assets/serializers/asset.py:74 assets/serializers/asset_user.py:29
#: assets/templates/assets/_asset_user_list.html:18
msgid "Connectivity"
msgstr "连接"
#: assets/serializers/asset.py:75 orgs/mixins.py:223
#: assets/serializers/asset.py:74 orgs/mixins.py:220
msgid "Org name"
msgstr "组织名称"
#: assets/serializers/asset.py:9
3
#: assets/serializers/asset.py:9
2
msgid "Protocol duplicate: {}"
msgstr "协议重复: {}"
#: assets/serializers/asset_user.py:3
7 assets/serializers/asset_user.py:90
#: assets/serializers/asset_user.py:3
8 assets/serializers/asset_user.py:91
#: users/forms.py:248 users/models/user.py:93
#: users/templates/users/first_login.html:42
#: users/templates/users/user_password_update.html:46
...
...
@@ -1241,106 +1239,98 @@ msgstr "协议重复: {}"
msgid "Public key"
msgstr "ssh公钥"
#: assets/serializers/asset_user.py:4
3
#: assets/serializers/asset_user.py:4
4
msgid "Backend"
msgstr "后端"
#: assets/serializers/asset_user.py:6
5
#: assets/serializers/asset_user.py:6
6
msgid "private key invalid"
msgstr "密钥不合法"
#: assets/serializers/system_user.py:22
msgid "Unreachable assets"
msgstr "不可达资产"
#: assets/serializers/system_user.py:25
msgid "Reachable assets"
msgstr "可连接资产"
#: assets/serializers/system_user.py:41
#: assets/serializers/system_user.py:31
msgid "Login mode display"
msgstr "登录模式显示"
#: assets/tasks.py:3
2
#: assets/tasks.py:3
3
msgid "Asset has been disabled, skipped: {}"
msgstr "资产或许不支持ansible, 跳过: {}"
#: assets/tasks.py:3
6
#: assets/tasks.py:3
7
msgid "Asset may not be support ansible, skipped: {}"
msgstr "资产或许不支持ansible, 跳过: {}"
#: assets/tasks.py:
49
#: assets/tasks.py:
50
msgid "No assets matched, stop task"
msgstr "没有匹配到资产,结束任务"
#: assets/tasks.py:
59
#: assets/tasks.py:
60
msgid "No assets matched related system user protocol, stop task"
msgstr "没有匹配到与系统用户协议相关的资产,结束任务"
#: assets/tasks.py:8
5
#: assets/tasks.py:8
6
msgid "Get asset info failed: {}"
msgstr "获取资产信息失败:{}"
#: assets/tasks.py:13
5
#: assets/tasks.py:13
6
msgid "Update some assets hardware info"
msgstr "更新资产硬件信息"
#: assets/tasks.py:15
2
#: assets/tasks.py:15
3
msgid "Update asset hardware info: {}"
msgstr "更新资产硬件信息: {}"
#: assets/tasks.py:17
7
#: assets/tasks.py:17
8
msgid "Test assets connectivity"
msgstr "测试资产可连接性"
#: assets/tasks.py:2
29
#: assets/tasks.py:2
32
msgid "Test assets connectivity: {}"
msgstr "测试资产可连接性: {}"
#: assets/tasks.py:27
1
#: assets/tasks.py:27
4
msgid "Test admin user connectivity period: {}"
msgstr "定期测试管理账号可连接性: {}"
#: assets/tasks.py:2
78
#: assets/tasks.py:2
81
msgid "Test admin user connectivity: {}"
msgstr "测试管理行号可连接性: {}"
#: assets/tasks.py:34
8
#: assets/tasks.py:34
9
msgid "Test system user connectivity: {}"
msgstr "测试系统用户可连接性: {}"
#: assets/tasks.py:35
5
#: assets/tasks.py:35
6
msgid "Test system user connectivity: {} => {}"
msgstr "测试系统用户可连接性: {} => {}"
#: assets/tasks.py:36
8
#: assets/tasks.py:36
9
msgid "Test system user connectivity period: {}"
msgstr "定期测试系统用户可连接性: {}"
#: assets/tasks.py:4
69 assets/tasks.py:555
#: assets/tasks.py:4
70 assets/tasks.py:556
#: xpack/plugins/change_auth_plan/models.py:522
msgid "The asset {} system platform {} does not support run Ansible tasks"
msgstr "资产 {} 系统平台 {} 不支持运行 Ansible 任务"
#: assets/tasks.py:48
1
#: assets/tasks.py:48
2
msgid ""
"Push system user task skip, auto push not enable or protocol is not ssh or "
"rdp: {}"
msgstr "推送系统用户任务跳过,自动推送没有打开,或协议不是ssh或rdp: {}"
#: assets/tasks.py:48
8
#: assets/tasks.py:48
9
msgid "For security, do not push user {}"
msgstr "为了安全,禁止推送用户 {}"
#: assets/tasks.py:51
6 assets/tasks.py:530
#: assets/tasks.py:51
7 assets/tasks.py:531
msgid "Push system users to assets: {}"
msgstr "推送系统用户到入资产: {}"
#: assets/tasks.py:52
2
#: assets/tasks.py:52
3
msgid "Push system users to asset: {} => {}"
msgstr "推送系统用户到入资产: {} => {}"
#: assets/tasks.py:6
1
2
#: assets/tasks.py:6
0
2
msgid "Test asset user connectivity: {}"
msgstr "测试资产用户可连接性: {}"
...
...
@@ -1440,21 +1430,26 @@ msgstr "关闭"
msgid "Datetime"
msgstr "日期"
#: assets/templates/assets/_asset_user_list.html:61
#: assets/templates/assets/_asset_user_list.html:36
#: assets/templates/assets/asset_list.html:166
msgid "Test datetime: "
msgstr "测试日期: "
#: assets/templates/assets/_asset_user_list.html:68
msgid "View"
msgstr "查看"
#: assets/templates/assets/_asset_user_list.html:
63
#: assets/templates/assets/_asset_user_list.html:
70
#: assets/templates/assets/admin_user_assets.html:61
#: assets/templates/assets/asset_asset_user_list.html:57
#: assets/templates/assets/asset_detail.html:182
#: assets/templates/assets/system_user_asset.html:63
#: assets/templates/assets/system_user_asset
s
.html:63
#: assets/templates/assets/system_user_detail.html:151
msgid "Test"
msgstr "测试"
#: assets/templates/assets/_asset_user_list.html:
64
#: assets/templates/assets/system_user_asset.html:72
#: assets/templates/assets/_asset_user_list.html:
71
#: assets/templates/assets/system_user_asset
s
.html:72
#: assets/templates/assets/system_user_detail.html:142
msgid "Push"
msgstr "推送"
...
...
@@ -1528,7 +1523,7 @@ msgid "Asset list of "
msgstr "资产列表"
#: assets/templates/assets/admin_user_assets.html:52
#: assets/templates/assets/system_user_asset.html:54
#: assets/templates/assets/system_user_asset
s
.html:54
#: assets/templates/assets/system_user_detail.html:116
#: perms/templates/perms/asset_permission_detail.html:114
#: perms/templates/perms/remote_app_permission_detail.html:106
...
...
@@ -1554,11 +1549,11 @@ msgstr "选择节点"
#: assets/templates/assets/admin_user_detail.html:100
#: assets/templates/assets/asset_detail.html:211
#: assets/templates/assets/asset_list.html:68
2
#: assets/templates/assets/asset_list.html:68
8
#: assets/templates/assets/cmd_filter_detail.html:106
#: assets/templates/assets/system_user_asset.html:100
#: assets/templates/assets/system_user_asset
s
.html:100
#: assets/templates/assets/system_user_detail.html:182
#: assets/templates/assets/system_user_list.html:17
0
#: assets/templates/assets/system_user_list.html:17
1
#: authentication/templates/authentication/_mfa_confirm_modal.html:20
#: settings/templates/settings/terminal_setting.html:168
#: templates/_modal.html:23 terminal/templates/terminal/session_detail.html:108
...
...
@@ -1627,12 +1622,12 @@ msgstr "创建管理用户"
msgid "Ratio"
msgstr "比例"
#: assets/templates/assets/admin_user_list.html:16
0
#: assets/templates/assets/admin_user_list.html:19
1
#: assets/templates/assets/asset_list.html:49
2
#: assets/templates/assets/asset_list.html:5
29
#: assets/templates/assets/system_user_list.html:22
3
#: assets/templates/assets/system_user_list.html:25
4
#: assets/templates/assets/admin_user_list.html:16
5
#: assets/templates/assets/admin_user_list.html:19
6
#: assets/templates/assets/asset_list.html:49
8
#: assets/templates/assets/asset_list.html:5
35
#: assets/templates/assets/system_user_list.html:22
4
#: assets/templates/assets/system_user_list.html:25
5
#: users/templates/users/user_group_list.html:163
#: users/templates/users/user_group_list.html:194
#: users/templates/users/user_list.html:158
...
...
@@ -1789,28 +1784,28 @@ msgstr "仅显示当前节点资产"
msgid "Displays all child node assets"
msgstr "显示所有子节点资产"
#: assets/templates/assets/asset_list.html:2
29
#: assets/templates/assets/asset_list.html:2
35
msgid "Create node failed"
msgstr "创建节点失败"
#: assets/templates/assets/asset_list.html:24
1
#: assets/templates/assets/asset_list.html:24
7
msgid "Have child node, cancel"
msgstr "存在子节点,不能删除"
#: assets/templates/assets/asset_list.html:24
3
#: assets/templates/assets/asset_list.html:24
9
msgid "Have assets, cancel"
msgstr "存在资产,不能删除"
#: assets/templates/assets/asset_list.html:3
14
#: assets/templates/assets/asset_list.html:3
20
msgid "Rename success"
msgstr "重命名成功"
#: assets/templates/assets/asset_list.html:3
15
#: assets/templates/assets/asset_list.html:3
21
msgid "Rename failed, do not change the root node name"
msgstr "重命名失败,不能更改root节点的名称"
#: assets/templates/assets/asset_list.html:6
76
#: assets/templates/assets/system_user_list.html:16
4
#: assets/templates/assets/asset_list.html:6
82
#: assets/templates/assets/system_user_list.html:16
5
#: users/templates/users/user_detail.html:382
#: users/templates/users/user_detail.html:408
#: users/templates/users/user_detail.html:476
...
...
@@ -1820,12 +1815,12 @@ msgstr "重命名失败,不能更改root节点的名称"
msgid "Are you sure?"
msgstr "你确认吗?"
#: assets/templates/assets/asset_list.html:6
77
#: assets/templates/assets/asset_list.html:6
83
msgid "This will delete the selected assets !!!"
msgstr "删除选择资产"
#: assets/templates/assets/asset_list.html:68
0
#: assets/templates/assets/system_user_list.html:16
8
#: assets/templates/assets/asset_list.html:68
6
#: assets/templates/assets/system_user_list.html:16
9
#: settings/templates/settings/terminal_setting.html:166
#: users/templates/users/user_detail.html:386
#: users/templates/users/user_detail.html:412
...
...
@@ -1838,16 +1833,16 @@ msgstr "删除选择资产"
msgid "Cancel"
msgstr "取消"
#: assets/templates/assets/asset_list.html:69
3
#: assets/templates/assets/asset_list.html:69
9
msgid "Asset Deleted."
msgstr "已被删除"
#: assets/templates/assets/asset_list.html:
694
#: assets/templates/assets/asset_list.html:
698
#: assets/templates/assets/asset_list.html:
700
#: assets/templates/assets/asset_list.html:
704
msgid "Asset Delete"
msgstr "删除"
#: assets/templates/assets/asset_list.html:
697
#: assets/templates/assets/asset_list.html:
703
msgid "Asset Deleting failed."
msgstr "删除失败"
...
...
@@ -1964,21 +1959,21 @@ msgstr "创建网域"
msgid "Create label"
msgstr "创建标签"
#: assets/templates/assets/system_user_asset.html:31
#: assets/templates/assets/system_user_asset
s
.html:31
msgid "Assets of "
msgstr "资产"
#: assets/templates/assets/system_user_asset.html:60
#: assets/templates/assets/system_user_asset
s
.html:60
#: assets/templates/assets/system_user_detail.html:148
msgid "Test assets connective"
msgstr "测试资产可连接性"
#: assets/templates/assets/system_user_asset.html:69
#: assets/templates/assets/system_user_asset
s
.html:69
#: assets/templates/assets/system_user_detail.html:139
msgid "Push system user now"
msgstr "立刻推送系统"
#: assets/templates/assets/system_user_asset.html:91
#: assets/templates/assets/system_user_asset
s
.html:91
msgid "Add to node"
msgstr "添加到节点"
...
...
@@ -2027,20 +2022,20 @@ msgstr ""
msgid "Create system user"
msgstr "创建系统用户"
#: assets/templates/assets/system_user_list.html:16
5
#: assets/templates/assets/system_user_list.html:16
6
msgid "This will delete the selected System Users !!!"
msgstr "删除选择系统用户"
#: assets/templates/assets/system_user_list.html:17
4
#: assets/templates/assets/system_user_list.html:17
5
msgid "System Users Deleted."
msgstr "已被删除"
#: assets/templates/assets/system_user_list.html:17
5
#: assets/templates/assets/system_user_list.html:18
0
#: assets/templates/assets/system_user_list.html:17
6
#: assets/templates/assets/system_user_list.html:18
1
msgid "System Users Delete"
msgstr "删除系统用户"
#: assets/templates/assets/system_user_list.html:1
79
#: assets/templates/assets/system_user_list.html:1
80
msgid "System Users Deleting failed."
msgstr "系统用户删除失败"
...
...
@@ -2321,8 +2316,8 @@ msgid "Date"
msgstr "日期"
#: audits/views.py:85 audits/views.py:129 audits/views.py:166
#: audits/views.py:211 audits/views.py:243
ops/views/command.py:4
7
#: templates/_nav
.html:87 templates/_nav
_audits.html:22
#: audits/views.py:211 audits/views.py:243
templates/_nav.html:8
7
#: templates/_nav_audits.html:22
msgid "Audits"
msgstr "日志审计"
...
...
@@ -2988,7 +2983,7 @@ msgstr "更新任务内容: {}"
#: ops/views/adhoc.py:45 ops/views/adhoc.py:71 ops/views/adhoc.py:85
#: ops/views/adhoc.py:99 ops/views/adhoc.py:113 ops/views/adhoc.py:127
#: ops/views/adhoc.py:141 ops/views/command.py:72
#: ops/views/adhoc.py:141 ops/views/command.py:
47 ops/views/command.py:
72
msgid "Ops"
msgstr "作业中心"
...
...
@@ -3008,7 +3003,7 @@ msgstr "命令执行列表"
msgid "Command execution"
msgstr "命令执行"
#: orgs/mixins.py:8
5 orgs/mixins.py:222
orgs/models.py:24
#: orgs/mixins.py:8
2 orgs/mixins.py:219
orgs/models.py:24
msgid "Organization"
msgstr "组织"
...
...
@@ -5768,7 +5763,7 @@ msgid "Interface settings"
msgstr "界面设置"
#: xpack/plugins/interface/templates/interface/interface.html:15
#: xpack/plugins/interface/views.py:2
4 xpack/plugins/interface/views.py:2
5
#: xpack/plugins/interface/views.py:25
msgid "Interface setting"
msgstr "界面设置"
...
...
@@ -5791,6 +5786,12 @@ msgstr "恢复默认成功!"
msgid "Restore default failed."
msgstr "恢复默认失败!"
#: xpack/plugins/interface/views.py:24
#, fuzzy
#| msgid "Interval"
msgid "Interface"
msgstr "间隔"
#: xpack/plugins/interface/views.py:51
msgid "It is already in the default setting state!"
msgstr "当前已经是初始化状态!"
...
...
@@ -5894,9 +5895,7 @@ msgstr "无效的许可证"
msgid "Admin"
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/meta.py:8
msgid "Organizations"
msgstr "组织管理"
...
...
@@ -5913,10 +5912,19 @@ msgstr "添加管理员"
msgid "Create organization "
msgstr "创建组织"
#: xpack/plugins/orgs/views.py:26
msgid "Org"
msgstr ""
#: xpack/plugins/orgs/views.py:27
msgid "Org list"
msgstr "组织列表"
#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60
#: xpack/plugins/orgs/views.py:77
msgid "Orgs"
msgstr ""
#: xpack/plugins/orgs/views.py:44
msgid "Create org"
msgstr "创建组织"
...
...
@@ -5925,8 +5933,8 @@ msgstr "创建组织"
msgid "Update org"
msgstr "更新组织"
#: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:2
2
#: xpack/plugins/vault/views.py:3
7
#: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:2
3
#: xpack/plugins/vault/views.py:3
8
msgid "Vault"
msgstr "密码匣子"
...
...
@@ -5934,14 +5942,20 @@ msgstr "密码匣子"
msgid "Import vault"
msgstr "导入密码"
#: xpack/plugins/vault/views.py:2
3
#: xpack/plugins/vault/views.py:2
4
msgid "vault list"
msgstr "密码匣子"
#: xpack/plugins/vault/views.py:3
8
#: xpack/plugins/vault/views.py:3
9
msgid "vault create"
msgstr "创建"
#~ msgid "Unreachable assets"
#~ msgstr "不可达资产"
#~ msgid "Reachable assets"
#~ msgstr "可连接资产"
#~ msgid "User does not exist"
#~ msgstr "用户不存在"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment