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