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
c9f4b104
Commit
c9f4b104
authored
Oct 19, 2018
by
ibuler
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'github/dev' into dev
parents
3bf1c036
ebecd005
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
172 additions
and
168 deletions
+172
-168
asset.py
apps/assets/api/asset.py
+1
-1
cmd_filter.py
apps/assets/api/cmd_filter.py
+2
-2
user.py
apps/assets/forms/user.py
+1
-1
cmd_filter.py
apps/assets/models/cmd_filter.py
+2
-2
node.py
apps/assets/models/node.py
+1
-1
user.py
apps/assets/models/user.py
+4
-2
asset_detail.html
apps/assets/templates/assets/asset_detail.html
+4
-0
cmd_filter_list.html
apps/assets/templates/assets/cmd_filter_list.html
+1
-1
django.mo
apps/locale/zh/LC_MESSAGES/django.mo
+0
-0
django.po
apps/locale/zh/LC_MESSAGES/django.po
+155
-157
api.py
apps/perms/api.py
+1
-1
No files found.
apps/assets/api/asset.py
View file @
c9f4b104
...
@@ -74,7 +74,7 @@ class AssetViewSet(IDInFilterMixin, LabelFilter, BulkModelViewSet):
...
@@ -74,7 +74,7 @@ class AssetViewSet(IDInFilterMixin, LabelFilter, BulkModelViewSet):
.
select_related
(
'admin_user'
)
.
select_related
(
'admin_user'
)
self
.
filter_admin_user_id
()
self
.
filter_admin_user_id
()
self
.
filter_node
()
self
.
filter_node
()
return
self
.
queryset
return
self
.
queryset
.
distinct
()
class
AssetListUpdateApi
(
IDInFilterMixin
,
ListBulkCreateUpdateDestroyAPIView
):
class
AssetListUpdateApi
(
IDInFilterMixin
,
ListBulkCreateUpdateDestroyAPIView
):
...
...
apps/assets/api/cmd_filter.py
View file @
c9f4b104
...
@@ -26,7 +26,7 @@ class CommandFilterRuleViewSet(BulkModelViewSet):
...
@@ -26,7 +26,7 @@ class CommandFilterRuleViewSet(BulkModelViewSet):
fpk
=
self
.
kwargs
.
get
(
'filter_pk'
)
fpk
=
self
.
kwargs
.
get
(
'filter_pk'
)
if
not
fpk
:
if
not
fpk
:
return
CommandFilterRule
.
objects
.
none
()
return
CommandFilterRule
.
objects
.
none
()
group
=
get_object_or_404
(
CommandFilter
,
pk
=
fpk
)
cmd_filter
=
get_object_or_404
(
CommandFilter
,
pk
=
fpk
)
return
group
.
rules
.
all
()
.
order_by
(
'priority'
)
return
cmd_filter
.
rules
.
all
(
)
apps/assets/forms/user.py
View file @
c9f4b104
...
@@ -150,7 +150,7 @@ class SystemUserForm(OrgModelForm, PasswordAndKeyAuthForm):
...
@@ -150,7 +150,7 @@ class SystemUserForm(OrgModelForm, PasswordAndKeyAuthForm):
'name'
:
'* required'
,
'name'
:
'* required'
,
'username'
:
'* required'
,
'username'
:
'* required'
,
'auto_push'
:
_
(
'Auto push system user to asset'
),
'auto_push'
:
_
(
'Auto push system user to asset'
),
'priority'
:
_
(
'High level will be using login asset as default, '
'priority'
:
_
(
'
1-100,
High level will be using login asset as default, '
'if user was granted more than 2 system user'
),
'if user was granted more than 2 system user'
),
'login_mode'
:
_
(
'If you choose manual login mode, you do not '
'login_mode'
:
_
(
'If you choose manual login mode, you do not '
'need to fill in the username and password.'
)
'need to fill in the username and password.'
)
...
...
apps/assets/models/cmd_filter.py
View file @
c9f4b104
...
@@ -44,7 +44,7 @@ class CommandFilterRule(OrgModelMixin):
...
@@ -44,7 +44,7 @@ class CommandFilterRule(OrgModelMixin):
id
=
models
.
UUIDField
(
default
=
uuid
.
uuid4
,
primary_key
=
True
)
id
=
models
.
UUIDField
(
default
=
uuid
.
uuid4
,
primary_key
=
True
)
filter
=
models
.
ForeignKey
(
'CommandFilter'
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
"Filter"
),
related_name
=
'rules'
)
filter
=
models
.
ForeignKey
(
'CommandFilter'
,
on_delete
=
models
.
CASCADE
,
verbose_name
=
_
(
"Filter"
),
related_name
=
'rules'
)
type
=
models
.
CharField
(
max_length
=
16
,
default
=
TYPE_COMMAND
,
choices
=
TYPE_CHOICES
,
verbose_name
=
_
(
"Type"
))
type
=
models
.
CharField
(
max_length
=
16
,
default
=
TYPE_COMMAND
,
choices
=
TYPE_CHOICES
,
verbose_name
=
_
(
"Type"
))
priority
=
models
.
IntegerField
(
default
=
50
,
verbose_name
=
_
(
"Priority"
),
help_text
=
_
(
"1-100, the
low
er will be match first"
),
priority
=
models
.
IntegerField
(
default
=
50
,
verbose_name
=
_
(
"Priority"
),
help_text
=
_
(
"1-100, the
high
er will be match first"
),
validators
=
[
MinValueValidator
(
1
),
MaxValueValidator
(
100
)])
validators
=
[
MinValueValidator
(
1
),
MaxValueValidator
(
100
)])
content
=
models
.
TextField
(
max_length
=
1024
,
verbose_name
=
_
(
"Content"
),
help_text
=
_
(
"One line one command"
))
content
=
models
.
TextField
(
max_length
=
1024
,
verbose_name
=
_
(
"Content"
),
help_text
=
_
(
"One line one command"
))
action
=
models
.
IntegerField
(
default
=
ACTION_DENY
,
choices
=
ACTION_CHOICES
,
verbose_name
=
_
(
"Action"
))
action
=
models
.
IntegerField
(
default
=
ACTION_DENY
,
choices
=
ACTION_CHOICES
,
verbose_name
=
_
(
"Action"
))
...
@@ -54,7 +54,7 @@ class CommandFilterRule(OrgModelMixin):
...
@@ -54,7 +54,7 @@ class CommandFilterRule(OrgModelMixin):
created_by
=
models
.
CharField
(
max_length
=
128
,
blank
=
True
,
default
=
''
,
verbose_name
=
_
(
'Created by'
))
created_by
=
models
.
CharField
(
max_length
=
128
,
blank
=
True
,
default
=
''
,
verbose_name
=
_
(
'Created by'
))
class
Meta
:
class
Meta
:
ordering
=
(
'priority'
,
'action'
)
ordering
=
(
'
-
priority'
,
'action'
)
def
__str__
(
self
):
def
__str__
(
self
):
return
'{}
%
{}'
.
format
(
self
.
type
,
self
.
content
)
return
'{}
%
{}'
.
format
(
self
.
type
,
self
.
content
)
apps/assets/models/node.py
View file @
c9f4b104
...
@@ -138,7 +138,7 @@ class Node(OrgModelMixin):
...
@@ -138,7 +138,7 @@ class Node(OrgModelMixin):
args
.
append
(
Q
(
nodes__key__regex
=
pattern
)
|
Q
(
nodes
=
None
))
args
.
append
(
Q
(
nodes__key__regex
=
pattern
)
|
Q
(
nodes
=
None
))
else
:
else
:
kwargs
[
'nodes__key__regex'
]
=
pattern
kwargs
[
'nodes__key__regex'
]
=
pattern
assets
=
Asset
.
objects
.
filter
(
*
args
,
**
kwargs
)
assets
=
Asset
.
objects
.
filter
(
*
args
,
**
kwargs
)
.
distinct
()
return
assets
return
assets
def
get_all_valid_assets
(
self
):
def
get_all_valid_assets
(
self
):
...
...
apps/assets/models/user.py
View file @
c9f4b104
...
@@ -7,6 +7,7 @@ import logging
...
@@ -7,6 +7,7 @@ import logging
from
django.core.cache
import
cache
from
django.core.cache
import
cache
from
django.db
import
models
from
django.db
import
models
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.core.validators
import
MinValueValidator
,
MaxValueValidator
from
common.utils
import
get_signer
from
common.utils
import
get_signer
from
..const
import
SYSTEM_USER_CONN_CACHE_KEY
from
..const
import
SYSTEM_USER_CONN_CACHE_KEY
...
@@ -111,7 +112,8 @@ class SystemUser(AssetUser):
...
@@ -111,7 +112,8 @@ class SystemUser(AssetUser):
nodes
=
models
.
ManyToManyField
(
'assets.Node'
,
blank
=
True
,
verbose_name
=
_
(
"Nodes"
))
nodes
=
models
.
ManyToManyField
(
'assets.Node'
,
blank
=
True
,
verbose_name
=
_
(
"Nodes"
))
assets
=
models
.
ManyToManyField
(
'assets.Asset'
,
blank
=
True
,
verbose_name
=
_
(
"Assets"
))
assets
=
models
.
ManyToManyField
(
'assets.Asset'
,
blank
=
True
,
verbose_name
=
_
(
"Assets"
))
priority
=
models
.
IntegerField
(
default
=
10
,
verbose_name
=
_
(
"Priority"
))
priority
=
models
.
IntegerField
(
default
=
20
,
verbose_name
=
_
(
"Priority"
),
validators
=
[
MinValueValidator
(
1
),
MaxValueValidator
(
100
)])
protocol
=
models
.
CharField
(
max_length
=
16
,
choices
=
PROTOCOL_CHOICES
,
default
=
'ssh'
,
verbose_name
=
_
(
'Protocol'
))
protocol
=
models
.
CharField
(
max_length
=
16
,
choices
=
PROTOCOL_CHOICES
,
default
=
'ssh'
,
verbose_name
=
_
(
'Protocol'
))
auto_push
=
models
.
BooleanField
(
default
=
True
,
verbose_name
=
_
(
'Auto push'
))
auto_push
=
models
.
BooleanField
(
default
=
True
,
verbose_name
=
_
(
'Auto push'
))
sudo
=
models
.
TextField
(
default
=
'/bin/whoami'
,
verbose_name
=
_
(
'Sudo'
))
sudo
=
models
.
TextField
(
default
=
'/bin/whoami'
,
verbose_name
=
_
(
'Sudo'
))
...
@@ -168,7 +170,7 @@ class SystemUser(AssetUser):
...
@@ -168,7 +170,7 @@ class SystemUser(AssetUser):
from
.cmd_filter
import
CommandFilterRule
from
.cmd_filter
import
CommandFilterRule
rules
=
CommandFilterRule
.
objects
.
filter
(
rules
=
CommandFilterRule
.
objects
.
filter
(
filter__in
=
self
.
cmd_filters
.
all
()
filter__in
=
self
.
cmd_filters
.
all
()
)
.
order_by
(
'priority'
)
.
distinct
()
)
.
distinct
()
return
rules
return
rules
@classmethod
@classmethod
...
...
apps/assets/templates/assets/asset_detail.html
View file @
c9f4b104
...
@@ -69,6 +69,10 @@
...
@@ -69,6 +69,10 @@
<td>
{% trans 'Port' %}:
</td>
<td>
{% trans 'Port' %}:
</td>
<td><b>
{{ asset.port }}
</b></td>
<td><b>
{{ asset.port }}
</b></td>
</tr>
</tr>
<tr>
<td>
{% trans 'Protocol' %}:
</td>
<td><b>
{{ asset.protocol }}
</b></td>
</tr>
<tr>
<tr>
<td>
{% trans 'Admin user' %}:
</td>
<td>
{% trans 'Admin user' %}:
</td>
<td><b>
{{ asset.admin_user }}
</b></td>
<td><b>
{{ asset.admin_user }}
</b></td>
...
...
apps/assets/templates/assets/cmd_filter_list.html
View file @
c9f4b104
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<div
class=
"alert alert-info help-message"
>
<div
class=
"alert alert-info help-message"
>
{% trans 'System user bound some command filter, each command filter has some rules,'%}
{% trans 'System user bound some command filter, each command filter has some rules,'%}
{% trans 'When user login asset with this system user, then run a command,' %}
{% trans 'When user login asset with this system user, then run a command,' %}
{% trans 'The command will be filter by rules, higher priority
(lower number)
rule run first,' %}
{% trans 'The command will be filter by rules, higher priority rule run first,' %}
{% trans 'When a rule matched, if rule action is allow, then allow command execute,' %}
{% trans 'When a rule matched, if rule action is allow, then allow command execute,' %}
{% trans 'else if action is deny, then command with be deny,' %}
{% trans 'else if action is deny, then command with be deny,' %}
{% trans 'else match next rule, if none matched, allowed' %}
{% trans 'else match next rule, if none matched, allowed' %}
...
...
apps/locale/zh/LC_MESSAGES/django.mo
View file @
c9f4b104
No preview for this file type
apps/locale/zh/LC_MESSAGES/django.po
View file @
c9f4b104
...
@@ -8,7 +8,7 @@ msgid ""
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n"
"Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-1
5 15:30
+0800\n"
"POT-Creation-Date: 2018-10-1
6 16:03
+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
...
@@ -33,7 +33,7 @@ msgstr "更新节点资产硬件信息: {}"
...
@@ -33,7 +33,7 @@ msgstr "更新节点资产硬件信息: {}"
msgid "Test if the assets under the node are connectable: {}"
msgid "Test if the assets under the node are connectable: {}"
msgstr "测试节点下资产是否可连接: {}"
msgstr "测试节点下资产是否可连接: {}"
#: assets/forms/asset.py:27 assets/models/asset.py:8
2 assets/models/user.py:112
#: assets/forms/asset.py:27 assets/models/asset.py:8
3 assets/models/user.py:113
#: assets/templates/assets/asset_detail.html:183
#: assets/templates/assets/asset_detail.html:183
#: assets/templates/assets/asset_detail.html:191
#: assets/templates/assets/asset_detail.html:191
#: assets/templates/assets/system_user_asset.html:95 perms/models.py:32
#: assets/templates/assets/system_user_asset.html:95 perms/models.py:32
...
@@ -41,10 +41,10 @@ msgid "Nodes"
...
@@ -41,10 +41,10 @@ msgid "Nodes"
msgstr "节点管理"
msgstr "节点管理"
#: assets/forms/asset.py:30 assets/forms/asset.py:69 assets/forms/asset.py:112
#: assets/forms/asset.py:30 assets/forms/asset.py:69 assets/forms/asset.py:112
#: assets/forms/asset.py:116 assets/models/asset.py:8
7
#: assets/forms/asset.py:116 assets/models/asset.py:8
8
#: assets/models/cluster.py:19 assets/models/user.py:7
2
#: assets/models/cluster.py:19 assets/models/user.py:7
3
#: assets/templates/assets/asset_detail.html:73 templates/_nav.html:24
#: assets/templates/assets/asset_detail.html:73 templates/_nav.html:24
#: xpack/plugins/cloud/models.py:13
3
#: xpack/plugins/cloud/models.py:13
7
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:67
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:67
#: xpack/plugins/orgs/templates/orgs/org_list.html:18
#: xpack/plugins/orgs/templates/orgs/org_list.html:18
msgid "Admin user"
msgid "Admin user"
...
@@ -61,7 +61,7 @@ msgstr "管理用户"
...
@@ -61,7 +61,7 @@ msgstr "管理用户"
msgid "Label"
msgid "Label"
msgstr "标签"
msgstr "标签"
#: assets/forms/asset.py:37 assets/forms/asset.py:76 assets/models/asset.py:7
8
#: assets/forms/asset.py:37 assets/forms/asset.py:76 assets/models/asset.py:7
9
#: assets/models/domain.py:24 assets/models/domain.py:50
#: assets/models/domain.py:24 assets/models/domain.py:50
#: assets/templates/assets/user_asset_list.html:168
#: assets/templates/assets/user_asset_list.html:168
#: xpack/plugins/orgs/templates/orgs/org_list.html:17
#: xpack/plugins/orgs/templates/orgs/org_list.html:17
...
@@ -75,7 +75,7 @@ msgstr "网域"
...
@@ -75,7 +75,7 @@ msgstr "网域"
#: perms/forms.py:44 perms/models.py:79
#: perms/forms.py:44 perms/models.py:79
#: perms/templates/perms/asset_permission_list.html:57
#: perms/templates/perms/asset_permission_list.html:57
#: perms/templates/perms/asset_permission_list.html:151
#: perms/templates/perms/asset_permission_list.html:151
#: xpack/plugins/cloud/models.py:13
2
#: xpack/plugins/cloud/models.py:13
6
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:63
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:63
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:66
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:66
msgid "Node"
msgid "Node"
...
@@ -104,7 +104,7 @@ msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,
...
@@ -104,7 +104,7 @@ msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,
msgid "Select assets"
msgid "Select assets"
msgstr "选择资产"
msgstr "选择资产"
#: assets/forms/asset.py:108 assets/models/asset.py:7
5
#: assets/forms/asset.py:108 assets/models/asset.py:7
6
#: assets/models/domain.py:48 assets/templates/assets/admin_user_assets.html:53
#: assets/models/domain.py:48 assets/templates/assets/admin_user_assets.html:53
#: assets/templates/assets/asset_detail.html:69
#: assets/templates/assets/asset_detail.html:69
#: assets/templates/assets/domain_gateway_list.html:58
#: assets/templates/assets/domain_gateway_list.html:58
...
@@ -114,7 +114,7 @@ msgid "Port"
...
@@ -114,7 +114,7 @@ msgid "Port"
msgstr "端口"
msgstr "端口"
#: assets/forms/domain.py:15 assets/forms/label.py:13
#: assets/forms/domain.py:15 assets/forms/label.py:13
#: assets/models/asset.py:24
2
assets/templates/assets/admin_user_list.html:28
#: assets/models/asset.py:24
3
assets/templates/assets/admin_user_list.html:28
#: assets/templates/assets/domain_detail.html:60
#: assets/templates/assets/domain_detail.html:60
#: assets/templates/assets/domain_list.html:26
#: assets/templates/assets/domain_list.html:26
#: assets/templates/assets/label_list.html:16
#: assets/templates/assets/label_list.html:16
...
@@ -130,7 +130,7 @@ msgstr "端口"
...
@@ -130,7 +130,7 @@ msgstr "端口"
#: terminal/templates/terminal/command_list.html:73
#: terminal/templates/terminal/command_list.html:73
#: terminal/templates/terminal/session_list.html:41
#: terminal/templates/terminal/session_list.html:41
#: terminal/templates/terminal/session_list.html:72
#: terminal/templates/terminal/session_list.html:72
#: xpack/plugins/cloud/models.py:
199
#: xpack/plugins/cloud/models.py:
207
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:65
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:65
#: xpack/plugins/orgs/templates/orgs/org_list.html:16
#: xpack/plugins/orgs/templates/orgs/org_list.html:16
msgid "Asset"
msgid "Asset"
...
@@ -170,7 +170,7 @@ msgstr "不能包含特殊字符"
...
@@ -170,7 +170,7 @@ msgstr "不能包含特殊字符"
#: users/templates/users/user_list.html:23
#: users/templates/users/user_list.html:23
#: users/templates/users/user_profile.html:51
#: users/templates/users/user_profile.html:51
#: users/templates/users/user_pubkey_update.html:53
#: users/templates/users/user_pubkey_update.html:53
#: xpack/plugins/cloud/models.py:40 xpack/plugins/cloud/models.py:1
28
#: xpack/plugins/cloud/models.py:40 xpack/plugins/cloud/models.py:1
32
#: xpack/plugins/cloud/templates/cloud/account_detail.html:52
#: xpack/plugins/cloud/templates/cloud/account_detail.html:52
#: xpack/plugins/cloud/templates/cloud/account_list.html:12
#: xpack/plugins/cloud/templates/cloud/account_list.html:12
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:55
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:55
...
@@ -201,7 +201,7 @@ msgstr "用户名"
...
@@ -201,7 +201,7 @@ msgstr "用户名"
msgid "Password or private key passphrase"
msgid "Password or private key passphrase"
msgstr "密码或密钥密码"
msgstr "密码或密钥密码"
#: assets/forms/user.py:26 assets/models/base.py:24 common/forms.py:10
4
#: assets/forms/user.py:26 assets/models/base.py:24 common/forms.py:10
7
#: users/forms.py:17 users/forms.py:35 users/forms.py:47
#: users/forms.py:17 users/forms.py:35 users/forms.py:47
#: users/templates/users/login.html:65
#: users/templates/users/login.html:65
#: users/templates/users/reset_password.html:53
#: users/templates/users/reset_password.html:53
...
@@ -229,7 +229,7 @@ msgstr "密码和私钥, 必须输入一个"
...
@@ -229,7 +229,7 @@ msgstr "密码和私钥, 必须输入一个"
msgid "* Automatic login mode, must fill in the username."
msgid "* Automatic login mode, must fill in the username."
msgstr "自动登录模式,必须填写用户名"
msgstr "自动登录模式,必须填写用户名"
#: assets/forms/user.py:146 assets/models/user.py:12
0
#: assets/forms/user.py:146 assets/models/user.py:12
2
#: assets/templates/assets/_system_user.html:66
#: assets/templates/assets/_system_user.html:66
#: assets/templates/assets/system_user_detail.html:165
#: assets/templates/assets/system_user_detail.html:165
msgid "Command filter"
msgid "Command filter"
...
@@ -241,17 +241,17 @@ msgstr "自动推送系统用户到资产"
...
@@ -241,17 +241,17 @@ msgstr "自动推送系统用户到资产"
#: assets/forms/user.py:153
#: assets/forms/user.py:153
msgid ""
msgid ""
"
High level will be using login asset as default, if user was granted more
"
"
1-100, High level will be using login asset as default, if user was granted
"
"than 2 system user"
"
more
than 2 system user"
msgstr "高优先级的系统用户将会作为默认登录用户"
msgstr "
1-100, 1最低优先级,100最高优先级。授权多个用户时,
高优先级的系统用户将会作为默认登录用户"
#: assets/forms/user.py:155
#: assets/forms/user.py:155
msgid ""
msgid ""
"If you choose manual login mode, you do not need to fill in the username and "
"If you choose manual login mode, you do not need to fill in the username and "
"password."
"password."
msgstr "如果选择手动登录模式,用户名和密码
则不需要
填写"
msgstr "如果选择手动登录模式,用户名和密码
可以不
填写"
#: assets/models/asset.py:7
2
assets/models/domain.py:47
#: assets/models/asset.py:7
3
assets/models/domain.py:47
#: assets/templates/assets/_asset_list_modal.html:46
#: assets/templates/assets/_asset_list_modal.html:46
#: assets/templates/assets/admin_user_assets.html:52
#: assets/templates/assets/admin_user_assets.html:52
#: assets/templates/assets/asset_detail.html:61
#: assets/templates/assets/asset_detail.html:61
...
@@ -260,28 +260,28 @@ msgstr "如果选择手动登录模式,用户名和密码则不需要填写"
...
@@ -260,28 +260,28 @@ msgstr "如果选择手动登录模式,用户名和密码则不需要填写"
#: assets/templates/assets/system_user_asset.html:51
#: assets/templates/assets/system_user_asset.html:51
#: assets/templates/assets/user_asset_list.html:46
#: assets/templates/assets/user_asset_list.html:46
#: assets/templates/assets/user_asset_list.html:162
#: assets/templates/assets/user_asset_list.html:162
#: audits/templates/audits/login_log_list.html:52 common/forms.py:13
3
#: audits/templates/audits/login_log_list.html:52 common/forms.py:13
6
#: perms/templates/perms/asset_permission_asset.html:55
#: perms/templates/perms/asset_permission_asset.html:55
#: users/templates/users/user_granted_asset.html:45
#: users/templates/users/user_granted_asset.html:45
#: users/templates/users/user_group_granted_asset.html:45
#: users/templates/users/user_group_granted_asset.html:45
msgid "IP"
msgid "IP"
msgstr "IP"
msgstr "IP"
#: assets/models/asset.py:7
3
assets/templates/assets/_asset_list_modal.html:45
#: assets/models/asset.py:7
4
assets/templates/assets/_asset_list_modal.html:45
#: assets/templates/assets/admin_user_assets.html:51
#: assets/templates/assets/admin_user_assets.html:51
#: assets/templates/assets/asset_detail.html:57
#: assets/templates/assets/asset_detail.html:57
#: assets/templates/assets/asset_list.html:92
#: assets/templates/assets/asset_list.html:92
#: assets/templates/assets/system_user_asset.html:50
#: assets/templates/assets/system_user_asset.html:50
#: assets/templates/assets/user_asset_list.html:45
#: assets/templates/assets/user_asset_list.html:45
#: assets/templates/assets/user_asset_list.html:161 common/forms.py:13
2
#: assets/templates/assets/user_asset_list.html:161 common/forms.py:13
5
#: perms/templates/perms/asset_permission_asset.html:54
#: perms/templates/perms/asset_permission_asset.html:54
#: users/templates/users/user_granted_asset.html:44
#: users/templates/users/user_granted_asset.html:44
#: users/templates/users/user_group_granted_asset.html:44
#: users/templates/users/user_group_granted_asset.html:44
msgid "Hostname"
msgid "Hostname"
msgstr "主机名"
msgstr "主机名"
#: assets/models/asset.py:7
4
assets/models/domain.py:49
#: assets/models/asset.py:7
5
assets/models/domain.py:49
#: assets/models/user.py:11
5
#: assets/models/user.py:11
7
#: assets/templates/assets/domain_gateway_list.html:59
#: assets/templates/assets/domain_gateway_list.html:59
#: assets/templates/assets/system_user_detail.html:70
#: assets/templates/assets/system_user_detail.html:70
#: assets/templates/assets/system_user_list.html:31
#: assets/templates/assets/system_user_list.html:31
...
@@ -290,90 +290,90 @@ msgstr "主机名"
...
@@ -290,90 +290,90 @@ msgstr "主机名"
msgid "Protocol"
msgid "Protocol"
msgstr "协议"
msgstr "协议"
#: assets/models/asset.py:7
6
assets/templates/assets/asset_detail.html:97
#: assets/models/asset.py:7
7
assets/templates/assets/asset_detail.html:97
#: assets/templates/assets/user_asset_list.html:165
#: assets/templates/assets/user_asset_list.html:165
msgid "Platform"
msgid "Platform"
msgstr "系统平台"
msgstr "系统平台"
#: assets/models/asset.py:8
3
assets/models/cmd_filter.py:20
#: assets/models/asset.py:8
4
assets/models/cmd_filter.py:20
#: assets/models/domain.py:52 assets/models/label.py:21
#: assets/models/domain.py:52 assets/models/label.py:21
#: assets/templates/assets/asset_detail.html:105
#: assets/templates/assets/asset_detail.html:105
#: assets/templates/assets/user_asset_list.html:169
#: assets/templates/assets/user_asset_list.html:169
msgid "Is active"
msgid "Is active"
msgstr "激活"
msgstr "激活"
#: assets/models/asset.py:9
0
assets/templates/assets/asset_detail.html:65
#: assets/models/asset.py:9
1
assets/templates/assets/asset_detail.html:65
msgid "Public IP"
msgid "Public IP"
msgstr "公网IP"
msgstr "公网IP"
#: assets/models/asset.py:9
1
assets/templates/assets/asset_detail.html:113
#: assets/models/asset.py:9
2
assets/templates/assets/asset_detail.html:113
msgid "Asset number"
msgid "Asset number"
msgstr "资产编号"
msgstr "资产编号"
#: assets/models/asset.py:9
5
assets/templates/assets/asset_detail.html:77
#: assets/models/asset.py:9
6
assets/templates/assets/asset_detail.html:77
msgid "Vendor"
msgid "Vendor"
msgstr "制造商"
msgstr "制造商"
#: assets/models/asset.py:9
7
assets/templates/assets/asset_detail.html:81
#: assets/models/asset.py:9
8
assets/templates/assets/asset_detail.html:81
msgid "Model"
msgid "Model"
msgstr "型号"
msgstr "型号"
#: assets/models/asset.py:
99
assets/templates/assets/asset_detail.html:109
#: assets/models/asset.py:
100
assets/templates/assets/asset_detail.html:109
msgid "Serial number"
msgid "Serial number"
msgstr "序列号"
msgstr "序列号"
#: assets/models/asset.py:10
2
#: assets/models/asset.py:10
3
msgid "CPU model"
msgid "CPU model"
msgstr "CPU型号"
msgstr "CPU型号"
#: assets/models/asset.py:10
3
#: assets/models/asset.py:10
4
msgid "CPU count"
msgid "CPU count"
msgstr "CPU数量"
msgstr "CPU数量"
#: assets/models/asset.py:10
4
#: assets/models/asset.py:10
5
msgid "CPU cores"
msgid "CPU cores"
msgstr "CPU核数"
msgstr "CPU核数"
#: assets/models/asset.py:10
5
#: assets/models/asset.py:10
6
msgid "CPU vcpus"
msgid "CPU vcpus"
msgstr "CPU总数"
msgstr "CPU总数"
#: assets/models/asset.py:10
7
assets/templates/assets/asset_detail.html:89
#: assets/models/asset.py:10
8
assets/templates/assets/asset_detail.html:89
msgid "Memory"
msgid "Memory"
msgstr "内存"
msgstr "内存"
#: assets/models/asset.py:1
09
#: assets/models/asset.py:1
10
msgid "Disk total"
msgid "Disk total"
msgstr "硬盘大小"
msgstr "硬盘大小"
#: assets/models/asset.py:11
1
#: assets/models/asset.py:11
2
msgid "Disk info"
msgid "Disk info"
msgstr "硬盘信息"
msgstr "硬盘信息"
#: assets/models/asset.py:11
4
assets/templates/assets/asset_detail.html:101
#: assets/models/asset.py:11
5
assets/templates/assets/asset_detail.html:101
#: assets/templates/assets/user_asset_list.html:166
#: assets/templates/assets/user_asset_list.html:166
msgid "OS"
msgid "OS"
msgstr "操作系统"
msgstr "操作系统"
#: assets/models/asset.py:11
6
#: assets/models/asset.py:11
7
msgid "OS version"
msgid "OS version"
msgstr "系统版本"
msgstr "系统版本"
#: assets/models/asset.py:11
8
#: assets/models/asset.py:11
9
msgid "OS arch"
msgid "OS arch"
msgstr "系统架构"
msgstr "系统架构"
#: assets/models/asset.py:12
0
#: assets/models/asset.py:12
1
msgid "Hostname raw"
msgid "Hostname raw"
msgstr "主机名原始"
msgstr "主机名原始"
#: assets/models/asset.py:12
4
assets/templates/assets/asset_create.html:34
#: assets/models/asset.py:12
5
assets/templates/assets/asset_create.html:34
#: assets/templates/assets/asset_detail.html:220
#: assets/templates/assets/asset_detail.html:220
#: assets/templates/assets/asset_update.html:39 templates/_nav.html:26
#: assets/templates/assets/asset_update.html:39 templates/_nav.html:26
msgid "Labels"
msgid "Labels"
msgstr "标签管理"
msgstr "标签管理"
#: assets/models/asset.py:12
6
assets/models/base.py:30
#: assets/models/asset.py:12
7
assets/models/base.py:30
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:24
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:24
#: assets/models/cmd_filter.py:54 assets/models/group.py:21
#: assets/models/cmd_filter.py:54 assets/models/group.py:21
#: assets/templates/assets/admin_user_detail.html:68
#: assets/templates/assets/admin_user_detail.html:68
...
@@ -384,11 +384,11 @@ msgstr "标签管理"
...
@@ -384,11 +384,11 @@ msgstr "标签管理"
#: ops/templates/ops/adhoc_detail.html:86 orgs/models.py:15 perms/models.py:37
#: ops/templates/ops/adhoc_detail.html:86 orgs/models.py:15 perms/models.py:37
#: perms/models.py:84 perms/templates/perms/asset_permission_detail.html:98
#: perms/models.py:84 perms/templates/perms/asset_permission_detail.html:98
#: users/models/user.py:92 users/templates/users/user_detail.html:111
#: users/models/user.py:92 users/templates/users/user_detail.html:111
#: xpack/plugins/cloud/models.py:46 xpack/plugins/cloud/models.py:1
36
#: xpack/plugins/cloud/models.py:46 xpack/plugins/cloud/models.py:1
40
msgid "Created by"
msgid "Created by"
msgstr "创建者"
msgstr "创建者"
#: assets/models/asset.py:1
29
assets/models/cluster.py:26
#: assets/models/asset.py:1
30
assets/models/cluster.py:26
#: assets/models/domain.py:21 assets/models/group.py:22
#: assets/models/domain.py:21 assets/models/group.py:22
#: assets/models/label.py:24 assets/templates/assets/admin_user_detail.html:64
#: assets/models/label.py:24 assets/templates/assets/admin_user_detail.html:64
#: assets/templates/assets/cmd_filter_detail.html:69
#: assets/templates/assets/cmd_filter_detail.html:69
...
@@ -399,14 +399,14 @@ msgstr "创建者"
...
@@ -399,14 +399,14 @@ msgstr "创建者"
#: perms/templates/perms/asset_permission_detail.html:94
#: perms/templates/perms/asset_permission_detail.html:94
#: terminal/templates/terminal/terminal_detail.html:59 users/models/group.py:17
#: terminal/templates/terminal/terminal_detail.html:59 users/models/group.py:17
#: users/templates/users/user_group_detail.html:63
#: users/templates/users/user_group_detail.html:63
#: xpack/plugins/cloud/models.py:47 xpack/plugins/cloud/models.py:1
37
#: xpack/plugins/cloud/models.py:47 xpack/plugins/cloud/models.py:1
41
#: xpack/plugins/cloud/templates/cloud/account_detail.html:68
#: xpack/plugins/cloud/templates/cloud/account_detail.html:68
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:79
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:79
#: xpack/plugins/orgs/templates/orgs/org_detail.html:60
#: xpack/plugins/orgs/templates/orgs/org_detail.html:60
msgid "Date created"
msgid "Date created"
msgstr "创建日期"
msgstr "创建日期"
#: assets/models/asset.py:13
1
assets/models/base.py:27
#: assets/models/asset.py:13
2
assets/models/base.py:27
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:21
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:21
#: assets/models/cmd_filter.py:51 assets/models/domain.py:19
#: assets/models/cmd_filter.py:51 assets/models/domain.py:19
#: assets/models/domain.py:51 assets/models/group.py:23
#: assets/models/domain.py:51 assets/models/group.py:23
...
@@ -430,7 +430,7 @@ msgstr "创建日期"
...
@@ -430,7 +430,7 @@ msgstr "创建日期"
#: users/templates/users/user_group_detail.html:67
#: users/templates/users/user_group_detail.html:67
#: users/templates/users/user_group_list.html:14
#: users/templates/users/user_group_list.html:14
#: users/templates/users/user_profile.html:130 xpack/plugins/cloud/models.py:45
#: users/templates/users/user_profile.html:130 xpack/plugins/cloud/models.py:45
#: xpack/plugins/cloud/models.py:13
4
#: xpack/plugins/cloud/models.py:13
8
#: xpack/plugins/cloud/templates/cloud/account_detail.html:72
#: xpack/plugins/cloud/templates/cloud/account_detail.html:72
#: xpack/plugins/cloud/templates/cloud/account_list.html:15
#: xpack/plugins/cloud/templates/cloud/account_list.html:15
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:71
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:71
...
@@ -538,14 +538,14 @@ msgstr "过滤器"
...
@@ -538,14 +538,14 @@ msgstr "过滤器"
msgid "Type"
msgid "Type"
msgstr "类型"
msgstr "类型"
#: assets/models/cmd_filter.py:47 assets/models/user.py:11
4
#: assets/models/cmd_filter.py:47 assets/models/user.py:11
5
#: assets/templates/assets/cmd_filter_rule_list.html:60
#: assets/templates/assets/cmd_filter_rule_list.html:60
msgid "Priority"
msgid "Priority"
msgstr "优先级"
msgstr "优先级"
#: assets/models/cmd_filter.py:47
#: assets/models/cmd_filter.py:47
msgid "1-100, the
low
er will be match first"
msgid "1-100, the
high
er will be match first"
msgstr "优先级可选范围为1-100,1最
高优先级 100最低
优先级"
msgstr "优先级可选范围为1-100,1最
低优先级,100最高
优先级"
#: assets/models/cmd_filter.py:49
#: assets/models/cmd_filter.py:49
#: assets/templates/assets/cmd_filter_rule_list.html:59
#: assets/templates/assets/cmd_filter_rule_list.html:59
...
@@ -634,23 +634,23 @@ msgstr "分类"
...
@@ -634,23 +634,23 @@ msgstr "分类"
msgid "Key"
msgid "Key"
msgstr ""
msgstr ""
#: assets/models/user.py:10
8
#: assets/models/user.py:10
9
msgid "Automatic login"
msgid "Automatic login"
msgstr "自动登录"
msgstr "自动登录"
#: assets/models/user.py:1
09
#: assets/models/user.py:1
10
msgid "Manually login"
msgid "Manually login"
msgstr "手动登录"
msgstr "手动登录"
#: assets/models/user.py:11
3
#: assets/models/user.py:11
4
#: assets/templates/assets/_asset_group_bulk_update_modal.html:11
#: assets/templates/assets/_asset_group_bulk_update_modal.html:11
#: assets/templates/assets/system_user_asset.html:22
#: assets/templates/assets/system_user_asset.html:22
#: assets/templates/assets/system_user_detail.html:22
#: assets/templates/assets/system_user_detail.html:22
#: assets/views/admin_user.py:29 assets/views/admin_user.py:47
#: assets/views/admin_user.py:29 assets/views/admin_user.py:47
#: assets/views/admin_user.py:63 assets/views/admin_user.py:78
#: assets/views/admin_user.py:63 assets/views/admin_user.py:78
#: assets/views/admin_user.py:102 assets/views/asset.py:5
3
#: assets/views/admin_user.py:102 assets/views/asset.py:5
0
#: assets/views/asset.py:
92 assets/views/asset.py:136 assets/views/asset.py:153
#: assets/views/asset.py:
89 assets/views/asset.py:133 assets/views/asset.py:150
#: assets/views/asset.py:17
7
assets/views/cmd_filter.py:30
#: assets/views/asset.py:17
4
assets/views/cmd_filter.py:30
#: assets/views/cmd_filter.py:46 assets/views/cmd_filter.py:62
#: assets/views/cmd_filter.py:46 assets/views/cmd_filter.py:62
#: assets/views/cmd_filter.py:78 assets/views/cmd_filter.py:97
#: assets/views/cmd_filter.py:78 assets/views/cmd_filter.py:97
#: assets/views/cmd_filter.py:130 assets/views/cmd_filter.py:163
#: assets/views/cmd_filter.py:130 assets/views/cmd_filter.py:163
...
@@ -664,26 +664,26 @@ msgstr "手动登录"
...
@@ -664,26 +664,26 @@ msgstr "手动登录"
msgid "Assets"
msgid "Assets"
msgstr "资产管理"
msgstr "资产管理"
#: assets/models/user.py:11
6
assets/templates/assets/_system_user.html:59
#: assets/models/user.py:11
8
assets/templates/assets/_system_user.html:59
#: assets/templates/assets/system_user_detail.html:122
#: assets/templates/assets/system_user_detail.html:122
#: assets/templates/assets/system_user_update.html:10
#: assets/templates/assets/system_user_update.html:10
msgid "Auto push"
msgid "Auto push"
msgstr "自动推送"
msgstr "自动推送"
#: assets/models/user.py:11
7
assets/templates/assets/system_user_detail.html:74
#: assets/models/user.py:11
9
assets/templates/assets/system_user_detail.html:74
msgid "Sudo"
msgid "Sudo"
msgstr "Sudo"
msgstr "Sudo"
#: assets/models/user.py:1
18
assets/templates/assets/system_user_detail.html:79
#: assets/models/user.py:1
20
assets/templates/assets/system_user_detail.html:79
msgid "Shell"
msgid "Shell"
msgstr "Shell"
msgstr "Shell"
#: assets/models/user.py:1
19
assets/templates/assets/system_user_detail.html:66
#: assets/models/user.py:1
21
assets/templates/assets/system_user_detail.html:66
#: assets/templates/assets/system_user_list.html:32
#: assets/templates/assets/system_user_list.html:32
msgid "Login mode"
msgid "Login mode"
msgstr "登录模式"
msgstr "登录模式"
#: assets/models/user.py:1
89
assets/templates/assets/user_asset_list.html:167
#: assets/models/user.py:1
91
assets/templates/assets/user_asset_list.html:167
#: audits/models.py:19 audits/templates/audits/ftp_log_list.html:49
#: audits/models.py:19 audits/templates/audits/ftp_log_list.html:49
#: audits/templates/audits/ftp_log_list.html:72 perms/forms.py:40
#: audits/templates/audits/ftp_log_list.html:72 perms/forms.py:40
#: perms/models.py:33 perms/models.py:81
#: perms/models.py:33 perms/models.py:81
...
@@ -798,7 +798,7 @@ msgstr "资产csv文件"
...
@@ -798,7 +798,7 @@ msgstr "资产csv文件"
msgid "If set id, will use this id update asset existed"
msgid "If set id, will use this id update asset existed"
msgstr "如果设置了id,则会使用该行信息更新该id的资产"
msgstr "如果设置了id,则会使用该行信息更新该id的资产"
#: assets/templates/assets/_asset_list_modal.html:7 assets/views/asset.py:5
4
#: assets/templates/assets/_asset_list_modal.html:7 assets/views/asset.py:5
1
#: templates/_nav.html:22
#: templates/_nav.html:22
msgid "Asset list"
msgid "Asset list"
msgstr "资产列表"
msgstr "资产列表"
...
@@ -893,7 +893,7 @@ msgid "Submit"
...
@@ -893,7 +893,7 @@ msgid "Submit"
msgstr "提交"
msgstr "提交"
#: assets/templates/assets/_user_asset_detail_modal.html:11
#: assets/templates/assets/_user_asset_detail_modal.html:11
#: assets/templates/assets/asset_detail.html:20 assets/views/asset.py:17
8
#: assets/templates/assets/asset_detail.html:20 assets/views/asset.py:17
5
msgid "Asset detail"
msgid "Asset detail"
msgstr "资产详情"
msgstr "资产详情"
...
@@ -1157,7 +1157,7 @@ msgstr ""
...
@@ -1157,7 +1157,7 @@ msgstr ""
"左侧是资产树,右击可以新建、删除、更改树节点,授权资产也是以节点方式组织的,"
"左侧是资产树,右击可以新建、删除、更改树节点,授权资产也是以节点方式组织的,"
"右侧是属于该节点下的资产"
"右侧是属于该节点下的资产"
#: assets/templates/assets/asset_list.html:69 assets/views/asset.py:9
3
#: assets/templates/assets/asset_list.html:69 assets/views/asset.py:9
0
msgid "Create asset"
msgid "Create asset"
msgstr "创建资产"
msgstr "创建资产"
...
@@ -1322,10 +1322,8 @@ msgid "When user login asset with this system user, then run a command,"
...
@@ -1322,10 +1322,8 @@ msgid "When user login asset with this system user, then run a command,"
msgstr "当用户使用这个系统用户登录资产,然后执行一个命令"
msgstr "当用户使用这个系统用户登录资产,然后执行一个命令"
#: assets/templates/assets/cmd_filter_list.html:8
#: assets/templates/assets/cmd_filter_list.html:8
msgid ""
msgid "The command will be filter by rules, higher priority rule run first,"
"The command will be filter by rules, higher priority(lower number) rule run "
msgstr "这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配,"
"first,"
msgstr "这个命令需要被绑定过滤器的所有规则匹配,高优先级(数字越低)先被匹配,"
#: assets/templates/assets/cmd_filter_list.html:9
#: assets/templates/assets/cmd_filter_list.html:9
msgid ""
msgid ""
...
@@ -1513,23 +1511,23 @@ msgstr "更新管理用户"
...
@@ -1513,23 +1511,23 @@ msgstr "更新管理用户"
msgid "Admin user detail"
msgid "Admin user detail"
msgstr "管理用户详情"
msgstr "管理用户详情"
#: assets/views/asset.py:6
7
templates/_nav_user.html:4
#: assets/views/asset.py:6
4
templates/_nav_user.html:4
msgid "My assets"
msgid "My assets"
msgstr "我的资产"
msgstr "我的资产"
#: assets/views/asset.py:10
7
#: assets/views/asset.py:10
4
msgid "Bulk update asset success"
msgid "Bulk update asset success"
msgstr "批量更新资产成功"
msgstr "批量更新资产成功"
#: assets/views/asset.py:13
7
#: assets/views/asset.py:13
4
msgid "Bulk update asset"
msgid "Bulk update asset"
msgstr "批量更新资产"
msgstr "批量更新资产"
#: assets/views/asset.py:15
4
#: assets/views/asset.py:15
1
msgid "Update asset"
msgid "Update asset"
msgstr "更新资产"
msgstr "更新资产"
#: assets/views/asset.py:29
4
#: assets/views/asset.py:29
1
msgid "already exists"
msgid "already exists"
msgstr "已经存在"
msgstr "已经存在"
...
@@ -1664,7 +1662,7 @@ msgstr "选择用户"
...
@@ -1664,7 +1662,7 @@ msgstr "选择用户"
#: templates/_base_list.html:43 templates/_header_bar.html:8
#: templates/_base_list.html:43 templates/_header_bar.html:8
#: terminal/templates/terminal/command_list.html:60
#: terminal/templates/terminal/command_list.html:60
#: terminal/templates/terminal/session_list.html:61
#: terminal/templates/terminal/session_list.html:61
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:5
0
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:5
2
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:50
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:50
msgid "Search"
msgid "Search"
msgstr "搜索"
msgstr "搜索"
...
@@ -1674,7 +1672,7 @@ msgstr "搜索"
...
@@ -1674,7 +1672,7 @@ msgstr "搜索"
#: ops/templates/ops/adhoc_history_detail.html:49
#: ops/templates/ops/adhoc_history_detail.html:49
#: ops/templates/ops/task_detail.html:55
#: ops/templates/ops/task_detail.html:55
#: terminal/templates/terminal/session_list.html:70
#: terminal/templates/terminal/session_list.html:70
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
2
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
4
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:62
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:62
msgid "ID"
msgid "ID"
msgstr "ID"
msgstr "ID"
...
@@ -1694,15 +1692,15 @@ msgid "MFA"
...
@@ -1694,15 +1692,15 @@ msgid "MFA"
msgstr "MFA"
msgstr "MFA"
#: audits/templates/audits/login_log_list.html:55
#: audits/templates/audits/login_log_list.html:55
#: users/models/authentication.py:76 xpack/plugins/cloud/models.py:1
84
#: users/models/authentication.py:76 xpack/plugins/cloud/models.py:1
92
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
7
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
9
msgid "Reason"
msgid "Reason"
msgstr "原因"
msgstr "原因"
#: audits/templates/audits/login_log_list.html:56
#: audits/templates/audits/login_log_list.html:56
#: users/models/authentication.py:77 xpack/plugins/cloud/models.py:1
83
#: users/models/authentication.py:77 xpack/plugins/cloud/models.py:1
91
#: xpack/plugins/cloud/models.py:20
0
#: xpack/plugins/cloud/models.py:20
8
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:
68
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:
70
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:67
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:67
msgid "Status"
msgid "Status"
msgstr "状态"
msgstr "状态"
...
@@ -1787,88 +1785,88 @@ msgstr "不是字符类型"
...
@@ -1787,88 +1785,88 @@ msgstr "不是字符类型"
msgid "Encrypt field using Secret Key"
msgid "Encrypt field using Secret Key"
msgstr ""
msgstr ""
#: common/forms.py:6
1
#: common/forms.py:6
4
msgid "Current SITE URL"
msgid "Current SITE URL"
msgstr "当前站点URL"
msgstr "当前站点URL"
#: common/forms.py:6
5
#: common/forms.py:6
8
msgid "User Guide URL"
msgid "User Guide URL"
msgstr "用户向导URL"
msgstr "用户向导URL"
#: common/forms.py:6
6
#: common/forms.py:6
9
msgid "User first login update profile done redirect to it"
msgid "User first login update profile done redirect to it"
msgstr "用户第一次登录,修改profile后重定向到地址"
msgstr "用户第一次登录,修改profile后重定向到地址"
#: common/forms.py:
69
#: common/forms.py:
72
msgid "Email Subject Prefix"
msgid "Email Subject Prefix"
msgstr "Email主题前缀"
msgstr "Email主题前缀"
#: common/forms.py:7
6
#: common/forms.py:7
9
msgid "SMTP host"
msgid "SMTP host"
msgstr "SMTP主机"
msgstr "SMTP主机"
#: common/forms.py:
78
#: common/forms.py:
81
msgid "SMTP port"
msgid "SMTP port"
msgstr "SMTP端口"
msgstr "SMTP端口"
#: common/forms.py:8
0
#: common/forms.py:8
3
msgid "SMTP user"
msgid "SMTP user"
msgstr "SMTP账号"
msgstr "SMTP账号"
#: common/forms.py:8
3
#: common/forms.py:8
6
msgid "SMTP password"
msgid "SMTP password"
msgstr "SMTP密码"
msgstr "SMTP密码"
#: common/forms.py:8
4
#: common/forms.py:8
7
msgid "Some provider use token except password"
msgid "Some provider use token except password"
msgstr "一些邮件提供商需要输入的是Token"
msgstr "一些邮件提供商需要输入的是Token"
#: common/forms.py:
87 common/forms.py:125
#: common/forms.py:
90 common/forms.py:128
msgid "Use SSL"
msgid "Use SSL"
msgstr "使用SSL"
msgstr "使用SSL"
#: common/forms.py:
88
#: common/forms.py:
91
msgid "If SMTP port is 465, may be select"
msgid "If SMTP port is 465, may be select"
msgstr "如果SMTP端口是465,通常需要启用SSL"
msgstr "如果SMTP端口是465,通常需要启用SSL"
#: common/forms.py:9
1
#: common/forms.py:9
4
msgid "Use TLS"
msgid "Use TLS"
msgstr "使用TLS"
msgstr "使用TLS"
#: common/forms.py:9
2
#: common/forms.py:9
5
msgid "If SMTP port is 587, may be select"
msgid "If SMTP port is 587, may be select"
msgstr "如果SMTP端口是587,通常需要启用TLS"
msgstr "如果SMTP端口是587,通常需要启用TLS"
#: common/forms.py:
98
#: common/forms.py:
101
msgid "LDAP server"
msgid "LDAP server"
msgstr "LDAP地址"
msgstr "LDAP地址"
#: common/forms.py:10
1
#: common/forms.py:10
4
msgid "Bind DN"
msgid "Bind DN"
msgstr "绑定DN"
msgstr "绑定DN"
#: common/forms.py:1
08
#: common/forms.py:1
11
msgid "User OU"
msgid "User OU"
msgstr "用户OU"
msgstr "用户OU"
#: common/forms.py:1
09
#: common/forms.py:1
12
msgid "Use | split User OUs"
msgid "Use | split User OUs"
msgstr "使用|分隔各OU"
msgstr "使用|分隔各OU"
#: common/forms.py:11
2
#: common/forms.py:11
5
msgid "User search filter"
msgid "User search filter"
msgstr "用户过滤器"
msgstr "用户过滤器"
#: common/forms.py:11
3
#: common/forms.py:11
6
#, python-format
#, python-format
msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)"
msgid "Choice may be (cn|uid|sAMAccountName)=%(user)s)"
msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)"
msgstr "可能的选项是(cn或uid或sAMAccountName=%(user)s)"
#: common/forms.py:11
6
#: common/forms.py:11
9
msgid "User attr map"
msgid "User attr map"
msgstr "LDAP属性映射"
msgstr "LDAP属性映射"
#: common/forms.py:1
18
#: common/forms.py:1
21
msgid ""
msgid ""
"User attr map present how to map LDAP user attr to jumpserver, username,name,"
"User attr map present how to map LDAP user attr to jumpserver, username,name,"
"email is jumpserver attr"
"email is jumpserver attr"
...
@@ -1876,125 +1874,125 @@ msgstr ""
...
@@ -1876,125 +1874,125 @@ msgstr ""
"用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, name,"
"用户属性映射代表怎样将LDAP中用户属性映射到jumpserver用户上,username, name,"
"email 是jumpserver的属性"
"email 是jumpserver的属性"
#: common/forms.py:1
27
#: common/forms.py:1
30
msgid "Enable LDAP auth"
msgid "Enable LDAP auth"
msgstr "启用LDAP认证"
msgstr "启用LDAP认证"
#: common/forms.py:13
6
#: common/forms.py:13
9
msgid "List sort by"
msgid "List sort by"
msgstr "资产列表排序"
msgstr "资产列表排序"
#: common/forms.py:1
39
#: common/forms.py:1
42
msgid "Heartbeat interval"
msgid "Heartbeat interval"
msgstr "心跳间隔"
msgstr "心跳间隔"
#: common/forms.py:1
39
ops/models/adhoc.py:38
#: common/forms.py:1
42
ops/models/adhoc.py:38
msgid "Units: seconds"
msgid "Units: seconds"
msgstr "单位: 秒"
msgstr "单位: 秒"
#: common/forms.py:14
2
#: common/forms.py:14
5
msgid "Password auth"
msgid "Password auth"
msgstr "密码认证"
msgstr "密码认证"
#: common/forms.py:14
5
#: common/forms.py:14
8
msgid "Public key auth"
msgid "Public key auth"
msgstr "密钥认证"
msgstr "密钥认证"
#: common/forms.py:1
48
common/templates/common/terminal_setting.html:68
#: common/forms.py:1
51
common/templates/common/terminal_setting.html:68
#: terminal/forms.py:30 terminal/models.py:22
#: terminal/forms.py:30 terminal/models.py:22
msgid "Command storage"
msgid "Command storage"
msgstr "命令存储"
msgstr "命令存储"
#: common/forms.py:1
49
#: common/forms.py:1
52
msgid ""
msgid ""
"Set terminal storage setting, `default` is the using as default,You can set "
"Set terminal storage setting, `default` is the using as default,You can set "
"other storage and some terminal using"
"other storage and some terminal using"
msgstr "设置终端命令存储,default是默认用的存储方式"
msgstr "设置终端命令存储,default是默认用的存储方式"
#: common/forms.py:15
4
common/templates/common/terminal_setting.html:86
#: common/forms.py:15
7
common/templates/common/terminal_setting.html:86
#: terminal/forms.py:35 terminal/models.py:23
#: terminal/forms.py:35 terminal/models.py:23
msgid "Replay storage"
msgid "Replay storage"
msgstr "录像存储"
msgstr "录像存储"
#: common/forms.py:15
5
#: common/forms.py:15
8
msgid ""
msgid ""
"Set replay storage setting, `default` is the using as default,You can set "
"Set replay storage setting, `default` is the using as default,You can set "
"other storage and some terminal using"
"other storage and some terminal using"
msgstr "设置终端录像存储,default是默认用的存储方式"
msgstr "设置终端录像存储,default是默认用的存储方式"
#: common/forms.py:16
5
#: common/forms.py:16
8
msgid "MFA Secondary certification"
msgid "MFA Secondary certification"
msgstr "MFA 二次认证"
msgstr "MFA 二次认证"
#: common/forms.py:1
67
#: common/forms.py:1
70
msgid ""
msgid ""
"After opening, the user login must use MFA secondary authentication (valid "
"After opening, the user login must use MFA secondary authentication (valid "
"for all users, including administrators)"
"for all users, including administrators)"
msgstr "开启后,用户登录必须使用MFA二次认证(对所有用户有效,包括管理员)"
msgstr "开启后,用户登录必须使用MFA二次认证(对所有用户有效,包括管理员)"
#: common/forms.py:17
4
#: common/forms.py:17
7
msgid "Limit the number of login failures"
msgid "Limit the number of login failures"
msgstr "限制登录失败次数"
msgstr "限制登录失败次数"
#: common/forms.py:1
79
#: common/forms.py:1
82
msgid "No logon interval"
msgid "No logon interval"
msgstr "禁止登录时间间隔"
msgstr "禁止登录时间间隔"
#: common/forms.py:18
1
#: common/forms.py:18
4
msgid ""
msgid ""
"Tip :(unit/minute) if the user has failed to log in for a limited number of "
"Tip :(unit/minute) if the user has failed to log in for a limited number of "
"times, no login is allowed during this time interval."
"times, no login is allowed during this time interval."
msgstr ""
msgstr ""
"提示: (单位: 分钟) 当用户登录失败次数达到限制后,那么在此时间间隔内禁止登录."
"提示: (单位: 分钟) 当用户登录失败次数达到限制后,那么在此时间间隔内禁止登录."
#: common/forms.py:1
87
#: common/forms.py:1
90
msgid "Connection max idle time"
msgid "Connection max idle time"
msgstr "SSH最大空闲时间"
msgstr "SSH最大空闲时间"
#: common/forms.py:1
89
#: common/forms.py:1
92
msgid ""
msgid ""
"If idle time more than it, disconnect connection(only ssh now) Unit: minute"
"If idle time more than it, disconnect connection(only ssh now) Unit: minute"
msgstr "提示: (单位: 分钟) 如果超过该配置没有操作,连接会被断开(仅ssh) "
msgstr "提示: (单位: 分钟) 如果超过该配置没有操作,连接会被断开(仅ssh) "
#: common/forms.py:19
5
#: common/forms.py:19
8
msgid "Password minimum length"
msgid "Password minimum length"
msgstr "密码最小长度 "
msgstr "密码最小长度 "
#: common/forms.py:20
1
#: common/forms.py:20
4
msgid "Must contain capital letters"
msgid "Must contain capital letters"
msgstr "必须包含大写字母"
msgstr "必须包含大写字母"
#: common/forms.py:20
3
#: common/forms.py:20
6
msgid ""
msgid ""
"After opening, the user password changes and resets must contain uppercase "
"After opening, the user password changes and resets must contain uppercase "
"letters"
"letters"
msgstr "开启后,用户密码修改、重置必须包含大写字母"
msgstr "开启后,用户密码修改、重置必须包含大写字母"
#: common/forms.py:2
09
#: common/forms.py:2
12
msgid "Must contain lowercase letters"
msgid "Must contain lowercase letters"
msgstr "必须包含小写字母"
msgstr "必须包含小写字母"
#: common/forms.py:21
0
#: common/forms.py:21
3
msgid ""
msgid ""
"After opening, the user password changes and resets must contain lowercase "
"After opening, the user password changes and resets must contain lowercase "
"letters"
"letters"
msgstr "开启后,用户密码修改、重置必须包含小写字母"
msgstr "开启后,用户密码修改、重置必须包含小写字母"
#: common/forms.py:21
6
#: common/forms.py:21
9
msgid "Must contain numeric characters"
msgid "Must contain numeric characters"
msgstr "必须包含数字字符"
msgstr "必须包含数字字符"
#: common/forms.py:2
17
#: common/forms.py:2
20
msgid ""
msgid ""
"After opening, the user password changes and resets must contain numeric "
"After opening, the user password changes and resets must contain numeric "
"characters"
"characters"
msgstr "开启后,用户密码修改、重置必须包含数字字符"
msgstr "开启后,用户密码修改、重置必须包含数字字符"
#: common/forms.py:22
3
#: common/forms.py:22
6
msgid "Must contain special characters"
msgid "Must contain special characters"
msgstr "必须包含特殊字符"
msgstr "必须包含特殊字符"
#: common/forms.py:22
4
#: common/forms.py:22
7
msgid ""
msgid ""
"After opening, the user password changes and resets must contain special "
"After opening, the user password changes and resets must contain special "
"characters"
"characters"
...
@@ -2332,7 +2330,7 @@ msgstr "任务列表"
...
@@ -2332,7 +2330,7 @@ msgstr "任务列表"
msgid "Task run history"
msgid "Task run history"
msgstr "执行历史"
msgstr "执行历史"
#: orgs/mixins.py:7
9
orgs/models.py:24
#: orgs/mixins.py:7
8
orgs/models.py:24
msgid "Organization"
msgid "Organization"
msgstr "组织管理"
msgstr "组织管理"
...
@@ -2577,7 +2575,7 @@ msgstr "命令记录"
...
@@ -2577,7 +2575,7 @@ msgstr "命令记录"
msgid "Web terminal"
msgid "Web terminal"
msgstr "Web终端"
msgstr "Web终端"
#: templates/_nav.html:53
#: templates/_nav.html:53
templates/_nav_user.html:19
msgid "File manager"
msgid "File manager"
msgstr "文件管理"
msgstr "文件管理"
...
@@ -3189,8 +3187,8 @@ msgstr "用户名/密码 校验失败"
...
@@ -3189,8 +3187,8 @@ msgstr "用户名/密码 校验失败"
msgid "MFA authentication failed"
msgid "MFA authentication failed"
msgstr "MFA 认证失败"
msgstr "MFA 认证失败"
#: users/models/authentication.py:67 xpack/plugins/cloud/models.py:1
76
#: users/models/authentication.py:67 xpack/plugins/cloud/models.py:1
84
#: xpack/plugins/cloud/models.py:19
0
#: xpack/plugins/cloud/models.py:19
8
msgid "Failed"
msgid "Failed"
msgstr "失败"
msgstr "失败"
...
@@ -3270,7 +3268,7 @@ msgstr "安全令牌验证"
...
@@ -3270,7 +3268,7 @@ msgstr "安全令牌验证"
#: users/templates/users/_base_otp.html:44 users/templates/users/_user.html:13
#: users/templates/users/_base_otp.html:44 users/templates/users/_user.html:13
#: users/templates/users/user_profile_update.html:51
#: users/templates/users/user_profile_update.html:51
#: xpack/plugins/cloud/models.py:
129
#: xpack/plugins/cloud/models.py:
51 xpack/plugins/cloud/models.py:133
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:59
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:59
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:13
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:13
msgid "Account"
msgid "Account"
...
@@ -4108,61 +4106,61 @@ msgstr ""
...
@@ -4108,61 +4106,61 @@ msgstr ""
msgid "Validity"
msgid "Validity"
msgstr "账户状态"
msgstr "账户状态"
#: xpack/plugins/cloud/models.py:13
0
#: xpack/plugins/cloud/models.py:13
4
msgid "Regions"
msgid "Regions"
msgstr "地域"
msgstr "地域"
#: xpack/plugins/cloud/models.py:13
1
#: xpack/plugins/cloud/models.py:13
5
msgid "Instances"
msgid "Instances"
msgstr "实例"
msgstr "实例"
#: xpack/plugins/cloud/models.py:13
5
#: xpack/plugins/cloud/models.py:13
9
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:75
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:75
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:17
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_list.html:17
msgid "Date last sync"
msgid "Date last sync"
msgstr "最后同步日期"
msgstr "最后同步日期"
#: xpack/plugins/cloud/models.py:177 xpack/plugins/cloud/models.py:191
#: xpack/plugins/cloud/models.py:145 xpack/plugins/cloud/models.py:189
msgid "Sync instance task"
msgstr "同步实例任务"
#: xpack/plugins/cloud/models.py:185 xpack/plugins/cloud/models.py:199
msgid "Succeed"
msgid "Succeed"
msgstr "成功"
msgstr "成功"
#: xpack/plugins/cloud/models.py:1
78
#: xpack/plugins/cloud/models.py:1
86
msgid "Partial succeed"
msgid "Partial succeed"
msgstr ""
msgstr ""
#: xpack/plugins/cloud/models.py:181
#: xpack/plugins/cloud/models.py:190
msgid "Sync instance task"
msgstr "同步实例任务"
#: xpack/plugins/cloud/models.py:182
msgid "Result"
msgid "Result"
msgstr "结果"
msgstr "结果"
#: xpack/plugins/cloud/models.py:1
85 xpack/plugins/cloud/models.py:201
#: xpack/plugins/cloud/models.py:1
93 xpack/plugins/cloud/models.py:209
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:
69
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:
71
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:68
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:68
msgid "Date sync"
msgid "Date sync"
msgstr "同步日期"
msgstr "同步日期"
#: xpack/plugins/cloud/models.py:
192
#: xpack/plugins/cloud/models.py:
200
msgid "Exist"
msgid "Exist"
msgstr "存在"
msgstr "存在"
#: xpack/plugins/cloud/models.py:
195
#: xpack/plugins/cloud/models.py:
203
msgid "Sync task"
msgid "Sync task"
msgstr "同步任务"
msgstr "同步任务"
#: xpack/plugins/cloud/models.py:
196
#: xpack/plugins/cloud/models.py:
204
msgid "Sync instance task history"
msgid "Sync instance task history"
msgstr "同步实例任务历史"
msgstr "同步实例任务历史"
#: xpack/plugins/cloud/models.py:
197
#: xpack/plugins/cloud/models.py:
205
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:91
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:91
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:63
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:63
msgid "Instance"
msgid "Instance"
msgstr "实例"
msgstr "实例"
#: xpack/plugins/cloud/models.py:
198
#: xpack/plugins/cloud/models.py:
206
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:83
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:83
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:64
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:64
msgid "Region"
msgid "Region"
...
@@ -4233,39 +4231,39 @@ msgid "Load failed"
...
@@ -4233,39 +4231,39 @@ msgid "Load failed"
msgstr "加载失败"
msgstr "加载失败"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:22
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:22
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:2
3
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:2
5
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:23
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:23
#: xpack/plugins/cloud/views.py:122
#: xpack/plugins/cloud/views.py:122
msgid "Sync task detail"
msgid "Sync task detail"
msgstr "同步任务详情"
msgstr "同步任务详情"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:25
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:25
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:2
6
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:2
8
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:26
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:26
#: xpack/plugins/cloud/views.py:137
#: xpack/plugins/cloud/views.py:137
msgid "Sync task history"
msgid "Sync task history"
msgstr "同步历史列表"
msgstr "同步历史列表"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:28
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:28
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:
29
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:
31
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:29
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_instance.html:29
#: xpack/plugins/cloud/views.py:180
#: xpack/plugins/cloud/views.py:180
msgid "Sync instance list"
msgid "Sync instance list"
msgstr "同步实例列表"
msgstr "同步实例列表"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
3
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
5
msgid "Total count"
msgid "Total count"
msgstr "总数"
msgstr "总数"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
4
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
6
msgid "Succeed count"
msgid "Succeed count"
msgstr "成功"
msgstr "成功"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
5
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
7
msgid "Failed count"
msgid "Failed count"
msgstr "失败"
msgstr "失败"
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
6
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_history.html:6
8
msgid "Exist count"
msgid "Exist count"
msgstr "存在"
msgstr "存在"
...
...
apps/perms/api.py
View file @
c9f4b104
...
@@ -96,7 +96,7 @@ class UserGrantedNodesApi(ListAPIView):
...
@@ -96,7 +96,7 @@ class UserGrantedNodesApi(ListAPIView):
"""
"""
查询用户授权的所有节点的API, 如果是超级用户或者是 app,切换到root org
查询用户授权的所有节点的API, 如果是超级用户或者是 app,切换到root org
"""
"""
permission_classes
=
(
IsOrgAdmin
,)
permission_classes
=
(
IsOrgAdmin
OrAppUser
,)
serializer_class
=
NodeSerializer
serializer_class
=
NodeSerializer
def
change_org_if_need
(
self
):
def
change_org_if_need
(
self
):
...
...
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