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
ef717f88
Commit
ef717f88
authored
5 years ago
by
ibuler
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into bugfix
parents
3e73dbdb
90890591
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
163 additions
and
183 deletions
+163
-183
remote_app.py
apps/applications/views/remote_app.py
+4
-4
vault.py
apps/assets/backends/vault.py
+1
-9
asset.py
apps/assets/models/asset.py
+2
-0
asset.py
apps/assets/serializers/asset.py
+7
-8
tasks.py
apps/assets/tasks.py
+15
-8
views.py
apps/audits/views.py
+1
-1
mixins.py
apps/common/mixins.py
+1
-1
django.mo
apps/locale/zh/LC_MESSAGES/django.mo
+0
-0
django.po
apps/locale/zh/LC_MESSAGES/django.po
+82
-108
djangojs.mo
apps/locale/zh/LC_MESSAGES/djangojs.mo
+0
-0
djangojs.po
apps/locale/zh/LC_MESSAGES/djangojs.po
+36
-32
mixins.py
apps/perms/mixins.py
+0
-2
api.py
apps/settings/api.py
+1
-1
jumpserver.js
apps/static/js/jumpserver.js
+1
-1
_nav_user.html
apps/templates/_nav_user.html
+4
-0
command.py
apps/terminal/views/command.py
+1
-1
session.py
apps/terminal/views/session.py
+4
-4
terminal.py
apps/terminal/views/terminal.py
+3
-3
No files found.
apps/applications/views/remote_app.py
View file @
ef717f88
...
...
@@ -28,7 +28,7 @@ class RemoteAppListView(PermissionsMixin, TemplateView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'A
sset
s'
),
'app'
:
_
(
'A
pplication
s'
),
'action'
:
_
(
'RemoteApp list'
),
}
kwargs
.
update
(
context
)
...
...
@@ -44,7 +44,7 @@ class RemoteAppCreateView(PermissionsMixin, SuccessMessageMixin, CreateView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'A
sset
s'
),
'app'
:
_
(
'A
pplication
s'
),
'action'
:
_
(
'Create RemoteApp'
),
}
kwargs
.
update
(
context
)
...
...
@@ -66,7 +66,7 @@ class RemoteAppUpdateView(PermissionsMixin, SuccessMessageMixin, UpdateView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'A
sset
s'
),
'app'
:
_
(
'A
pplication
s'
),
'action'
:
_
(
'Update RemoteApp'
),
}
kwargs
.
update
(
context
)
...
...
@@ -84,7 +84,7 @@ class RemoteAppDetailView(PermissionsMixin, DetailView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'A
sset
s'
),
'app'
:
_
(
'A
pplication
s'
),
'action'
:
_
(
'RemoteApp detail'
),
}
kwargs
.
update
(
context
)
...
...
This diff is collapsed.
Click to expand it.
apps/assets/backends/vault.py
View file @
ef717f88
# -*- coding: utf-8 -*-
#
from
.
.
base
import
BaseBackend
from
.base
import
BaseBackend
class
VaultBackend
(
BaseBackend
):
@classmethod
def
get
(
cls
,
username
,
asset
):
pass
@classmethod
def
filter
(
cls
,
username
=
None
,
asset
=
None
,
latest
=
True
):
pass
@classmethod
def
create
(
cls
,
**
kwargs
):
pass
This diff is collapsed.
Click to expand it.
apps/assets/models/asset.py
View file @
ef717f88
...
...
@@ -229,6 +229,8 @@ class Asset(OrgModelMixin):
@property
def
connectivity
(
self
):
if
not
self
.
admin_user
:
return
self
.
UNKNOWN
return
self
.
admin_user
.
get_connectivity_of
(
self
)
@connectivity.setter
...
...
This diff is collapsed.
Click to expand it.
apps/assets/serializers/asset.py
View file @
ef717f88
...
...
@@ -27,8 +27,6 @@ class ProtocolsRelatedField(serializers.RelatedField):
return
str
(
value
)
def
to_internal_value
(
self
,
data
):
print
(
data
)
print
(
type
(
data
))
if
isinstance
(
data
,
dict
):
return
data
if
'/'
not
in
data
:
...
...
@@ -152,7 +150,9 @@ class AssetGrantedSerializer(serializers.ModelSerializer):
"""
被授权资产的数据结构
"""
protocols
=
ProtocolSerializer
(
many
=
True
)
protocols
=
ProtocolsRelatedField
(
many
=
True
,
queryset
=
Protocol
.
objects
.
all
(),
label
=
_
(
"Protocols"
)
)
system_users_granted
=
AssetSystemUserSerializer
(
many
=
True
,
read_only
=
True
)
system_users_join
=
serializers
.
SerializerMethodField
()
# nodes = NodeTMPSerializer(many=True, read_only=True)
...
...
@@ -160,9 +160,9 @@ class AssetGrantedSerializer(serializers.ModelSerializer):
class
Meta
:
model
=
Asset
fields
=
(
"id"
,
"hostname"
,
"ip"
,
"protocol
s"
,
"system_users_granted
"
,
"
is_active"
,
"system_users_join"
,
"os"
,
'domain'
,
"platform"
,
"comment"
,
"org_id"
,
"org_name"
,
"id"
,
"hostname"
,
"ip"
,
"protocol
"
,
"port"
,
"protocols
"
,
"
system_users_granted"
,
"is_active"
,
"system_users_join"
,
"os"
,
'domain'
,
"platform"
,
"comment"
,
"org_id"
,
"org_name"
,
)
@staticmethod
...
...
@@ -187,8 +187,7 @@ class AssetGrantedSerializer(serializers.ModelSerializer):
class
AssetSimpleSerializer
(
serializers
.
ModelSerializer
):
protocols
=
ProtocolSerializer
(
many
=
True
)
class
Meta
:
model
=
Asset
fields
=
[
'id'
,
'hostname'
,
'ip'
,
'
protocols'
,
'
connectivity'
,
'port'
]
fields
=
[
'id'
,
'hostname'
,
'ip'
,
'connectivity'
,
'port'
]
This diff is collapsed.
Click to expand it.
apps/assets/tasks.py
View file @
ef717f88
...
...
@@ -209,9 +209,13 @@ def test_asset_connectivity_util(assets, task_name=None):
)
result
=
task
.
run
()
summary
=
result
[
1
]
results_summary
[
'success'
]
&=
summary
[
'success'
]
results_summary
[
'contacted'
]
.
update
(
summary
[
'contacted'
])
results_summary
[
'dark'
]
.
update
(
summary
[
'dark'
])
success
=
summary
.
get
(
'success'
,
False
)
contacted
=
summary
.
get
(
'contacted'
,
{})
dark
=
summary
.
get
(
'dark'
,
{})
results_summary
[
'success'
]
&=
success
results_summary
[
'contacted'
]
.
update
(
contacted
)
results_summary
[
'dark'
]
.
update
(
dark
)
for
asset
in
assets
:
if
asset
.
hostname
in
results_summary
.
get
(
'dark'
,
{}):
...
...
@@ -330,14 +334,17 @@ def test_system_user_connectivity_util(system_user, assets, task_name):
task
,
created
=
update_or_create_ansible_task
(
task_name
=
task_name
,
hosts
=
value
[
'hosts'
],
tasks
=
value
[
'tasks'
],
pattern
=
'all'
,
options
=
const
.
TASK_OPTIONS
,
run_as
=
system_user
.
username
,
created_by
=
system_user
.
org_id
,
run_as
=
system_user
.
username
,
created_by
=
system_user
.
org_id
,
)
result
=
task
.
run
()
summary
=
result
[
1
]
results_summary
[
'success'
]
&=
summary
[
'success'
]
results_summary
[
'contacted'
]
.
update
(
summary
[
'contacted'
])
results_summary
[
'dark'
]
.
update
(
summary
[
'dark'
])
success
=
summary
.
get
(
'success'
,
False
)
contacted
=
summary
.
get
(
'contacted'
,
{})
dark
=
summary
.
get
(
'dark'
,
{})
results_summary
[
'success'
]
&=
success
results_summary
[
'contacted'
]
.
update
(
contacted
)
results_summary
[
'dark'
]
.
update
(
dark
)
set_system_user_connectivity_info
(
system_user
,
results_summary
)
return
results_summary
...
...
This diff is collapsed.
Click to expand it.
apps/audits/views.py
View file @
ef717f88
...
...
@@ -248,7 +248,7 @@ class CommandExecutionListView(UserCommandExecutionListView):
'keyword'
:
self
.
keyword
,
'user_id'
:
self
.
user_id
,
})
return
super
()
.
get_context_data
(
**
context
)
return
context
@method_decorator
(
csrf_exempt
,
name
=
'dispatch'
)
...
...
This diff is collapsed.
Click to expand it.
apps/common/mixins.py
View file @
ef717f88
...
...
@@ -224,7 +224,7 @@ class ApiMessageMixin:
def
dispatch
(
self
,
request
,
*
args
,
**
kwargs
):
resp
=
super
()
.
dispatch
(
request
,
*
args
,
**
kwargs
)
if
request
.
method
.
lower
()
in
(
"get"
,
"delete"
):
if
request
.
method
.
lower
()
in
(
"get"
,
"delete"
,
"patch"
):
return
resp
if
resp
.
status_code
>=
400
:
return
resp
...
...
This diff is collapsed.
Click to expand it.
apps/locale/zh/LC_MESSAGES/django.mo
View file @
ef717f88
No preview for this file type
This diff is collapsed.
Click to expand it.
apps/locale/zh/LC_MESSAGES/django.po
View file @
ef717f88
...
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-
19 18:16
+0800\n"
"POT-Creation-Date: 2019-06-
20 17:55
+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"
...
...
@@ -210,7 +210,7 @@ msgstr "参数"
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:25
#: assets/models/cmd_filter.py:58 assets/models/group.py:21
#: assets/templates/assets/admin_user_detail.html:68
#: assets/templates/assets/asset_detail.html:12
9
#: assets/templates/assets/asset_detail.html:12
8
#: assets/templates/assets/cmd_filter_detail.html:77
#: assets/templates/assets/domain_detail.html:72
#: assets/templates/assets/system_user_detail.html:100
...
...
@@ -265,7 +265,7 @@ msgstr "创建日期"
#: assets/models/domain.py:53 assets/models/group.py:23
#: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:72
#: assets/templates/assets/admin_user_list.html:53
#: assets/templates/assets/asset_detail.html:13
7
#: assets/templates/assets/asset_detail.html:13
6
#: assets/templates/assets/cmd_filter_detail.html:65
#: assets/templates/assets/cmd_filter_list.html:27
#: assets/templates/assets/cmd_filter_rule_list.html:62
...
...
@@ -305,7 +305,7 @@ msgstr "备注"
#: perms/templates/perms/remote_app_permission_list.html:17
#: perms/templates/perms/remote_app_permission_remote_app.html:26
#: perms/templates/perms/remote_app_permission_user.html:26
#: templates/_nav.html:36 templates/_nav.html:48 templates/_nav_user.html:1
4
#: templates/_nav.html:36 templates/_nav.html:48 templates/_nav_user.html:1
6
msgid "RemoteApp"
msgstr "远程应用"
...
...
@@ -558,28 +558,9 @@ msgstr "连接"
#: applications/views/remote_app.py:31 applications/views/remote_app.py:47
#: applications/views/remote_app.py:69 applications/views/remote_app.py:87
#: assets/models/user.py:135
#: 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:30 assets/views/admin_user.py:49
#: assets/views/admin_user.py:66 assets/views/admin_user.py:82
#: assets/views/admin_user.py:107 assets/views/asset.py:52
#: assets/views/asset.py:69 assets/views/asset.py:128 assets/views/asset.py:171
#: assets/views/asset.py:199 assets/views/asset.py:226
#: assets/views/cmd_filter.py:31 assets/views/cmd_filter.py:48
#: assets/views/cmd_filter.py:65 assets/views/cmd_filter.py:82
#: assets/views/cmd_filter.py:102 assets/views/cmd_filter.py:136
#: assets/views/cmd_filter.py:170 assets/views/domain.py:30
#: assets/views/domain.py:47 assets/views/domain.py:64
#: assets/views/domain.py:78 assets/views/domain.py:104
#: assets/views/domain.py:133 assets/views/domain.py:153
#: assets/views/label.py:27 assets/views/label.py:45 assets/views/label.py:72
#: assets/views/system_user.py:29 assets/views/system_user.py:46
#: assets/views/system_user.py:63 assets/views/system_user.py:78
#: templates/_nav.html:19 xpack/plugins/change_auth_plan/models.py:68
msgid "Assets"
msgstr "资产管理"
#: templates/_nav.html:33
msgid "Applications"
msgstr "应用管理"
#: applications/views/remote_app.py:32
msgid "RemoteApp list"
...
...
@@ -619,8 +600,8 @@ msgid "Test if the assets under the node are connectable: {}"
msgstr "测试节点下资产是否可连接: {}"
#: assets/forms/asset.py:45 assets/models/asset.py:103
#: assets/models/user.py:134 assets/templates/assets/asset_detail.html:19
5
#: assets/templates/assets/asset_detail.html:20
3
#: assets/models/user.py:134 assets/templates/assets/asset_detail.html:19
4
#: assets/templates/assets/asset_detail.html:20
2
#: assets/templates/assets/system_user_asset.html:83
#: perms/models/asset_permission.py:38
#: xpack/plugins/change_auth_plan/models.py:72
...
...
@@ -629,7 +610,7 @@ msgstr "节点"
#: assets/forms/asset.py:48 assets/forms/asset.py:83 assets/models/asset.py:107
#: assets/models/cluster.py:19 assets/models/user.py:92
#: assets/templates/assets/asset_detail.html:8
1
templates/_nav.html:24
#: assets/templates/assets/asset_detail.html:8
0
templates/_nav.html:24
#: xpack/plugins/cloud/models.py:124
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:65
#: xpack/plugins/orgs/templates/orgs/org_list.html:18
...
...
@@ -647,7 +628,7 @@ msgstr "标签"
#: assets/forms/asset.py:54 assets/forms/asset.py:89 assets/models/asset.py:102
#: assets/models/domain.py:26 assets/models/domain.py:52
#: assets/templates/assets/asset_detail.html:8
5
#: assets/templates/assets/asset_detail.html:8
4
#: assets/templates/assets/user_asset_list.html:173
#: xpack/plugins/orgs/templates/orgs/org_list.html:17
msgid "Domain"
...
...
@@ -858,14 +839,14 @@ msgstr "主机名"
msgid "Protocol"
msgstr "协议"
#: assets/models/asset.py:101 assets/templates/assets/asset_detail.html:10
9
#: assets/models/asset.py:101 assets/templates/assets/asset_detail.html:10
8
#: assets/templates/assets/user_asset_list.html:170
msgid "Platform"
msgstr "系统平台"
#: assets/models/asset.py:104 assets/models/cmd_filter.py:21
#: assets/models/domain.py:54 assets/models/label.py:22
#: assets/templates/assets/asset_detail.html:11
7
#: assets/templates/assets/asset_detail.html:11
6
#: assets/templates/assets/user_asset_list.html:174
msgid "Is active"
msgstr "激活"
...
...
@@ -874,19 +855,19 @@ msgstr "激活"
msgid "Public IP"
msgstr "公网IP"
#: assets/models/asset.py:111 assets/templates/assets/asset_detail.html:12
5
#: assets/models/asset.py:111 assets/templates/assets/asset_detail.html:12
4
msgid "Asset number"
msgstr "资产编号"
#: assets/models/asset.py:114 assets/templates/assets/asset_detail.html:8
9
#: assets/models/asset.py:114 assets/templates/assets/asset_detail.html:8
8
msgid "Vendor"
msgstr "制造商"
#: assets/models/asset.py:115 assets/templates/assets/asset_detail.html:9
3
#: assets/models/asset.py:115 assets/templates/assets/asset_detail.html:9
2
msgid "Model"
msgstr "型号"
#: assets/models/asset.py:116 assets/templates/assets/asset_detail.html:12
1
#: assets/models/asset.py:116 assets/templates/assets/asset_detail.html:12
0
msgid "Serial number"
msgstr "序列号"
...
...
@@ -907,7 +888,7 @@ msgstr "CPU核数"
msgid "CPU vcpus"
msgstr "CPU总数"
#: assets/models/asset.py:122 assets/templates/assets/asset_detail.html:10
1
#: assets/models/asset.py:122 assets/templates/assets/asset_detail.html:10
0
msgid "Memory"
msgstr "内存"
...
...
@@ -919,7 +900,7 @@ msgstr "硬盘大小"
msgid "Disk info"
msgstr "硬盘信息"
#: assets/models/asset.py:126 assets/templates/assets/asset_detail.html:11
3
#: assets/models/asset.py:126 assets/templates/assets/asset_detail.html:11
2
#: assets/templates/assets/user_asset_list.html:171
msgid "OS"
msgstr "操作系统"
...
...
@@ -937,7 +918,7 @@ msgid "Hostname raw"
msgstr "主机名原始"
#: assets/models/asset.py:131 assets/templates/assets/asset_create.html:46
#: assets/templates/assets/asset_detail.html:23
2
templates/_nav.html:26
#: assets/templates/assets/asset_detail.html:23
1
templates/_nav.html:26
msgid "Labels"
msgstr "标签管理"
...
...
@@ -1182,6 +1163,29 @@ msgstr "自动登录"
msgid "Manually login"
msgstr "手动登录"
#: assets/models/user.py:135
#: 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:30 assets/views/admin_user.py:49
#: assets/views/admin_user.py:66 assets/views/admin_user.py:82
#: assets/views/admin_user.py:107 assets/views/asset.py:52
#: assets/views/asset.py:69 assets/views/asset.py:128 assets/views/asset.py:171
#: assets/views/asset.py:199 assets/views/asset.py:226
#: assets/views/cmd_filter.py:31 assets/views/cmd_filter.py:48
#: assets/views/cmd_filter.py:65 assets/views/cmd_filter.py:82
#: assets/views/cmd_filter.py:102 assets/views/cmd_filter.py:136
#: assets/views/cmd_filter.py:170 assets/views/domain.py:30
#: assets/views/domain.py:47 assets/views/domain.py:64
#: assets/views/domain.py:78 assets/views/domain.py:104
#: assets/views/domain.py:133 assets/views/domain.py:153
#: assets/views/label.py:27 assets/views/label.py:45 assets/views/label.py:72
#: assets/views/system_user.py:29 assets/views/system_user.py:46
#: assets/views/system_user.py:63 assets/views/system_user.py:78
#: templates/_nav.html:19 xpack/plugins/change_auth_plan/models.py:68
msgid "Assets"
msgstr "资产管理"
#: assets/models/user.py:138 assets/templates/assets/_system_user.html:59
#: assets/templates/assets/system_user_detail.html:122
#: assets/templates/assets/system_user_update.html:10
...
...
@@ -1206,24 +1210,24 @@ msgstr "登录模式"
msgid "%(value)s is not an even number"
msgstr "%(value)s is not an even number"
#: assets/serializers/asset.py:
2
6 assets/templates/assets/asset_create.html:24
#: assets/serializers/asset.py:
4
6 assets/templates/assets/asset_create.html:24
msgid "Protocols"
msgstr "协议组"
#: assets/serializers/asset.py:
52
#: assets/serializers/asset.py:
73
msgid "Hardware info"
msgstr "硬件信息"
#: assets/serializers/asset.py:
53
assets/serializers/asset_user.py:29
#: assets/serializers/asset.py:
74
assets/serializers/asset_user.py:29
#: assets/templates/assets/_asset_user_list.html:18
msgid "Connectivity"
msgstr "连接"
#: assets/serializers/asset.py:
54
orgs/mixins.py:223
#: assets/serializers/asset.py:
75
orgs/mixins.py:223
msgid "Org name"
msgstr "组织名称"
#: assets/serializers/asset.py:
70
#: assets/serializers/asset.py:
93
msgid "Protocol duplicate: {}"
msgstr "协议重复: {}"
...
...
@@ -1400,7 +1404,7 @@ msgid "Please input password"
msgstr "请输入密码"
#: assets/templates/assets/_asset_user_auth_update_modal.html:68
#: assets/templates/assets/asset_detail.html:31
2
#: assets/templates/assets/asset_detail.html:31
1
#: users/templates/users/user_detail.html:307
#: users/templates/users/user_detail.html:334
#: xpack/plugins/interface/views.py:35
...
...
@@ -1437,15 +1441,13 @@ msgid "Datetime"
msgstr "日期"
#: assets/templates/assets/_asset_user_list.html:61
#, fuzzy
#| msgid "View auth"
msgid "View"
msgstr "查看
认证
"
msgstr "查看"
#: assets/templates/assets/_asset_user_list.html:63
#: assets/templates/assets/admin_user_assets.html:61
#: assets/templates/assets/asset_asset_user_list.html:57
#: assets/templates/assets/asset_detail.html:18
3
#: assets/templates/assets/asset_detail.html:18
2
#: assets/templates/assets/system_user_asset.html:63
#: assets/templates/assets/system_user_detail.html:151
msgid "Test"
...
...
@@ -1535,7 +1537,7 @@ msgstr "快速更新"
#: assets/templates/assets/admin_user_assets.html:58
#: assets/templates/assets/asset_asset_user_list.html:54
#: assets/templates/assets/asset_detail.html:1
80
#: assets/templates/assets/asset_detail.html:1
79
msgid "Test connective"
msgstr "测试可连接性"
...
...
@@ -1551,7 +1553,7 @@ msgid "Select nodes"
msgstr "选择节点"
#: assets/templates/assets/admin_user_detail.html:100
#: assets/templates/assets/asset_detail.html:21
2
#: assets/templates/assets/asset_detail.html:21
1
#: assets/templates/assets/asset_list.html:682
#: assets/templates/assets/cmd_filter_detail.html:106
#: assets/templates/assets/system_user_asset.html:100
...
...
@@ -1649,7 +1651,7 @@ msgid "Asset users of"
msgstr "资产用户"
#: assets/templates/assets/asset_asset_user_list.html:47
#: assets/templates/assets/asset_detail.html:14
9
#: assets/templates/assets/asset_detail.html:14
8
#: terminal/templates/terminal/session_detail.html:81
#: users/templates/users/user_detail.html:138
#: users/templates/users/user_profile.html:146
...
...
@@ -1668,21 +1670,21 @@ msgstr "选择需要修改属性"
msgid "Select all"
msgstr "全选"
#: assets/templates/assets/asset_detail.html:9
7
#: assets/templates/assets/asset_detail.html:9
6
msgid "CPU"
msgstr "CPU"
#: assets/templates/assets/asset_detail.html:10
5
#: assets/templates/assets/asset_detail.html:10
4
msgid "Disk"
msgstr "硬盘"
#: assets/templates/assets/asset_detail.html:13
3
#: assets/templates/assets/asset_detail.html:13
2
#: users/templates/users/user_detail.html:115
#: users/templates/users/user_profile.html:104
msgid "Date joined"
msgstr "创建日期"
#: assets/templates/assets/asset_detail.html:15
5
#: assets/templates/assets/asset_detail.html:15
4
#: assets/templates/assets/user_asset_list.html:46
#: perms/models/asset_permission.py:60 perms/models/base.py:38
#: perms/templates/perms/asset_permission_create_update.html:55
...
...
@@ -1698,11 +1700,11 @@ msgstr "创建日期"
msgid "Active"
msgstr "激活中"
#: assets/templates/assets/asset_detail.html:17
2
#: assets/templates/assets/asset_detail.html:17
1
msgid "Refresh hardware"
msgstr "更新硬件信息"
#: assets/templates/assets/asset_detail.html:17
5
#: assets/templates/assets/asset_detail.html:17
4
msgid "Refresh"
msgstr "刷新"
...
...
@@ -2319,8 +2321,8 @@ msgid "Date"
msgstr "日期"
#: audits/views.py:85 audits/views.py:129 audits/views.py:166
#: audits/views.py:211 audits/views.py:243
templates/_nav.html:8
7
#: templates/_nav_audits.html:22
#: audits/views.py:211 audits/views.py:243
ops/views/command.py:4
7
#: templates/_nav
.html:87 templates/_nav
_audits.html:22
msgid "Audits"
msgstr "日志审计"
...
...
@@ -2986,7 +2988,7 @@ msgstr "更新任务内容: {}"
#: ops/views/adhoc.py:45 ops/views/adhoc.py:71 ops/views/adhoc.py:85
#: ops/views/adhoc.py:99 ops/views/adhoc.py:113 ops/views/adhoc.py:127
#: ops/views/adhoc.py:141 ops/views/command.py:
47 ops/views/command.py:
72
#: ops/views/adhoc.py:141 ops/views/command.py:72
msgid "Ops"
msgstr "作业中心"
...
...
@@ -3002,7 +3004,7 @@ msgstr "执行历史"
msgid "Command execution list"
msgstr "命令执行列表"
#: ops/views/command.py:73 templates/_nav_user.html:2
2
#: ops/views/command.py:73 templates/_nav_user.html:2
6
msgid "Command execution"
msgstr "命令执行"
...
...
@@ -3827,7 +3829,7 @@ msgstr "文档"
msgid "Commercial support"
msgstr "商业支持"
#: templates/_header_bar.html:89 templates/_nav_user.html:
28
users/forms.py:139
#: templates/_header_bar.html:89 templates/_nav_user.html:
32
users/forms.py:139
#: users/templates/users/_user.html:43
#: users/templates/users/first_login.html:39
#: users/templates/users/user_password_update.html:40
...
...
@@ -3943,11 +3945,11 @@ msgstr "用户列表"
msgid "Command filters"
msgstr "命令过滤"
#: templates/_nav.html:33
msgid "Applications"
msgstr "应用管理"
#: templates/_nav.html:55 templates/_nav_audits.html:11
#: terminal/views/command.py:51 terminal/views/session.py:74
#: terminal/views/session.py:92 terminal/views/session.py:116
#: terminal/views/terminal.py:31 terminal/views/terminal.py:47
#: terminal/views/terminal.py:60
msgid "Sessions"
msgstr "会话管理"
...
...
@@ -3956,6 +3958,7 @@ msgid "Session online"
msgstr "在线会话"
#: templates/_nav.html:59 templates/_nav_audits.html:15
#: terminal/views/session.py:93
msgid "Session offline"
msgstr "历史会话"
...
...
@@ -3963,18 +3966,15 @@ msgstr "历史会话"
msgid "Commands"
msgstr "命令记录"
#: templates/_nav.html:63 templates/_nav_user.html:3
3
#: templates/_nav.html:63 templates/_nav_user.html:3
7
msgid "Web terminal"
msgstr "Web终端"
#: templates/_nav.html:68 templates/_nav_user.html:
38
#: templates/_nav.html:68 templates/_nav_user.html:
42
msgid "File manager"
msgstr "文件管理"
#: templates/_nav.html:72 terminal/views/command.py:51
#: terminal/views/session.py:74 terminal/views/session.py:92
#: terminal/views/session.py:116 terminal/views/terminal.py:31
#: terminal/views/terminal.py:47 terminal/views/terminal.py:60
#: templates/_nav.html:72
msgid "Terminal"
msgstr "终端管理"
...
...
@@ -3998,7 +3998,7 @@ msgstr "账户列表"
msgid "Sync instance"
msgstr "同步实例"
#: templates/_nav_user.html:
9
#: templates/_nav_user.html:
11
msgid "My Applications"
msgstr "我的应用"
...
...
@@ -4356,10 +4356,6 @@ msgstr "信息"
msgid "Session online list"
msgstr "在线会话"
#: terminal/views/session.py:93
msgid "Session offline list"
msgstr "离线会话"
#: terminal/views/terminal.py:32
msgid "Terminal list"
msgstr "终端列表"
...
...
@@ -5401,8 +5397,6 @@ msgid "Password rules"
msgstr "密码规则"
#: xpack/plugins/change_auth_plan/models.py:213
#, fuzzy
#| msgid "For security, do not change root user's password"
msgid "For security, do not change {} user's password"
msgstr "为了安全,禁止更改 {} 用户的密码"
...
...
@@ -5774,7 +5768,7 @@ msgid "Interface settings"
msgstr "界面设置"
#: xpack/plugins/interface/templates/interface/interface.html:15
#: xpack/plugins/interface/views.py:25
#: xpack/plugins/interface/views.py:2
4 xpack/plugins/interface/views.py:2
5
msgid "Interface setting"
msgstr "界面设置"
...
...
@@ -5797,10 +5791,6 @@ msgstr "恢复默认成功!"
msgid "Restore default failed."
msgstr "恢复默认失败!"
#: xpack/plugins/interface/views.py:24
msgid "Interface"
msgstr "界面"
#: xpack/plugins/interface/views.py:51
msgid "It is already in the default setting state!"
msgstr "当前已经是初始化状态!"
...
...
@@ -5904,7 +5894,9 @@ msgstr "无效的许可证"
msgid "Admin"
msgstr "管理员"
#: xpack/plugins/orgs/meta.py:8
#: xpack/plugins/orgs/meta.py:8 xpack/plugins/orgs/views.py:26
#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60
#: xpack/plugins/orgs/views.py:77
msgid "Organizations"
msgstr "组织管理"
...
...
@@ -5921,19 +5913,10 @@ msgstr "添加管理员"
msgid "Create organization "
msgstr "创建组织"
#: xpack/plugins/orgs/views.py:26
msgid "Org"
msgstr "组织"
#: xpack/plugins/orgs/views.py:27
msgid "Org list"
msgstr "组织列表"
#: xpack/plugins/orgs/views.py:43 xpack/plugins/orgs/views.py:60
#: xpack/plugins/orgs/views.py:77
msgid "Orgs"
msgstr "组织"
#: xpack/plugins/orgs/views.py:44
msgid "Create org"
msgstr "创建组织"
...
...
@@ -5942,8 +5925,8 @@ msgstr "创建组织"
msgid "Update org"
msgstr "更新组织"
#: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:2
3
#: xpack/plugins/vault/views.py:3
8
#: xpack/plugins/vault/meta.py:11 xpack/plugins/vault/views.py:2
2
#: xpack/plugins/vault/views.py:3
7
msgid "Vault"
msgstr "密码匣子"
...
...
@@ -5951,23 +5934,14 @@ msgstr "密码匣子"
msgid "Import vault"
msgstr "导入密码"
#: xpack/plugins/vault/views.py:2
4
#: xpack/plugins/vault/views.py:2
3
msgid "vault list"
msgstr "密码匣子"
#: xpack/plugins/vault/views.py:3
9
#: xpack/plugins/vault/views.py:3
8
msgid "vault create"
msgstr "创建"
#~ msgid "Update failed!"
#~ msgstr "更新失败"
#~ msgid "Update auth"
#~ msgstr "更新认证"
#~ msgid "Password version"
#~ msgstr "密码版本"
#~ msgid "User does not exist"
#~ msgstr "用户不存在"
...
...
This diff is collapsed.
Click to expand it.
apps/locale/zh/LC_MESSAGES/djangojs.mo
View file @
ef717f88
No preview for this file type
This diff is collapsed.
Click to expand it.
apps/locale/zh/LC_MESSAGES/djangojs.po
View file @
ef717f88
...
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-0
5-27 15:53
+0800\n"
"POT-Creation-Date: 2019-0
6-20 16:30
+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
...
...
@@ -17,58 +17,58 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: static/js/jumpserver.js:2
49
#: static/js/jumpserver.js:2
63
msgid "Update is successful!"
msgstr "更新成功"
#: static/js/jumpserver.js:2
51
#: static/js/jumpserver.js:2
65
msgid "An unknown error occurred while updating.."
msgstr "更新时发生未知错误"
#: static/js/jumpserver.js:3
15 static/js/jumpserver.js:352
#: static/js/jumpserver.js:3
55
#: static/js/jumpserver.js:3
29 static/js/jumpserver.js:366
#: static/js/jumpserver.js:3
69
msgid "Error"
msgstr "错误"
#: static/js/jumpserver.js:3
15
#: static/js/jumpserver.js:3
29
msgid "Being used by the asset, please unbind the asset first."
msgstr "正在被资产使用中,请先解除资产绑定"
#: static/js/jumpserver.js:3
21 static/js/jumpserver.js:362
#: static/js/jumpserver.js:3
35 static/js/jumpserver.js:376
msgid "Delete the success"
msgstr "删除成功"
#: static/js/jumpserver.js:3
27
#: static/js/jumpserver.js:3
41
msgid "Are you sure about deleting it?"
msgstr "你确定删除吗 ?"
#: static/js/jumpserver.js:3
31 static/js/jumpserver.js:372
#: static/js/jumpserver.js:3
45 static/js/jumpserver.js:386
msgid "Cancel"
msgstr "取消"
#: static/js/jumpserver.js:3
33 static/js/jumpserver.js:374
#: static/js/jumpserver.js:3
47 static/js/jumpserver.js:388
msgid "Confirm"
msgstr "确认"
#: static/js/jumpserver.js:3
52
#: static/js/jumpserver.js:3
66
msgid ""
"The organization contains undeleted information. Please try again after "
"deleting"
msgstr "组织中包含未删除信息,请删除后重试"
#: static/js/jumpserver.js:3
55
#: static/js/jumpserver.js:3
69
msgid ""
"Do not perform this operation under this organization. Try again after "
"switching to another organization"
msgstr "请勿在此组织下执行此操作,切换到其他组织后重试"
#: static/js/jumpserver.js:3
68
#: static/js/jumpserver.js:3
82
msgid ""
"Please ensure that the following information in the organization has been "
"deleted"
msgstr "请确保组织内的以下信息已删除"
#: static/js/jumpserver.js:3
69
#: static/js/jumpserver.js:3
83
msgid ""
"User list、User group、Asset list、Domain list、Admin user、System user、"
"Labels、Asset permission"
...
...
@@ -76,76 +76,80 @@ msgstr ""
"用户列表、用户组、资产列表、网域列表、管理用户、系统用户、标签管理、资产授权"
"规则"
#: static/js/jumpserver.js:4
08
#: static/js/jumpserver.js:4
22
msgid "Loading ..."
msgstr "加载中 ..."
#: static/js/jumpserver.js:4
09
#: static/js/jumpserver.js:4
23
msgid "Search"
msgstr "搜索"
#: static/js/jumpserver.js:4
12
#: static/js/jumpserver.js:4
26
#, javascript-format
msgid "Selected item %d"
msgstr "选中 %d 项"
#: static/js/jumpserver.js:4
16
#: static/js/jumpserver.js:4
30
msgid "Per page _MENU_"
msgstr "每页 _MENU_"
#: static/js/jumpserver.js:4
17
#: static/js/jumpserver.js:4
31
msgid ""
"Displays the results of items _START_ to _END_; A total of _TOTAL_ entries"
msgstr "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项"
#: static/js/jumpserver.js:4
20
#: static/js/jumpserver.js:4
34
msgid "No match"
msgstr "没有匹配项"
#: static/js/jumpserver.js:4
21
#: static/js/jumpserver.js:4
35
msgid "No record"
msgstr "没有记录"
#: static/js/jumpserver.js:5
63
#: static/js/jumpserver.js:5
77
msgid "Unknown error occur"
msgstr ""
#: static/js/jumpserver.js:8
00
#: static/js/jumpserver.js:8
16
msgid "Password minimum length {N} bits"
msgstr "密码最小长度 {N} 位"
#: static/js/jumpserver.js:8
01
#: static/js/jumpserver.js:8
17
msgid "Must contain capital letters"
msgstr "必须包含大写字母"
#: static/js/jumpserver.js:8
02
#: static/js/jumpserver.js:8
18
msgid "Must contain lowercase letters"
msgstr "必须包含小写字母"
#: static/js/jumpserver.js:8
03
#: static/js/jumpserver.js:8
19
msgid "Must contain numeric characters"
msgstr "必须包含数字字符"
#: static/js/jumpserver.js:8
04
#: static/js/jumpserver.js:8
20
msgid "Must contain special characters"
msgstr "必须包含特殊字符"
#: static/js/jumpserver.js:9
76
#: static/js/jumpserver.js:9
95
msgid "Export failed"
msgstr "导出失败"
#: static/js/jumpserver.js:
993
#: static/js/jumpserver.js:
1012
msgid "Import Success"
msgstr "导入成功"
#: static/js/jumpserver.js:
998
#: static/js/jumpserver.js:
1017
msgid "Update Success"
msgstr "更新成功"
#: static/js/jumpserver.js:1028
#: static/js/jumpserver.js:1018
msgid "Count"
msgstr "数量"
#: static/js/jumpserver.js:1047
msgid "Import failed"
msgstr "导入失败"
#: static/js/jumpserver.js:10
33
#: static/js/jumpserver.js:10
52
msgid "Update failed"
msgstr "更新失败"
This diff is collapsed.
Click to expand it.
apps/perms/mixins.py
View file @
ef717f88
# ~*~ coding: utf-8 ~*~
#
from
orgs.utils
import
set_to_root_org
__all__
=
[
...
...
@@ -116,4 +115,3 @@ class ChangeOrgIfNeedMixin(object):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
change_org_if_need
(
request
,
kwargs
)
return
super
()
.
get
(
request
,
*
args
,
**
kwargs
)
This diff is collapsed.
Click to expand it.
apps/settings/api.py
View file @
ef717f88
...
...
@@ -39,7 +39,7 @@ class MailTestingAPI(APIView):
subject
=
"Test"
message
=
"Test smtp setting"
email_from
=
email_from
or
email_host_user
send_mail
(
subject
,
message
,
email_from
,
[
email_
host_user
])
send_mail
(
subject
,
message
,
email_from
,
[
email_
from
])
except
Exception
as
e
:
return
Response
({
"error"
:
str
(
e
)},
status
=
401
)
...
...
This diff is collapsed.
Click to expand it.
apps/static/js/jumpserver.js
View file @
ef717f88
...
...
@@ -1015,7 +1015,7 @@ function APIImportData(props){
$
(
'#updated_failed'
).
html
(
''
);
$
(
'#updated_failed_detail'
).
html
(
''
);
$
(
'#success_updated'
).
html
(
gettext
(
"Update Success"
));
$
(
'#success_updated_detail'
).
html
(
"Count"
+
": "
+
data
.
length
);
$
(
'#success_updated_detail'
).
html
(
gettext
(
"Count"
)
+
": "
+
data
.
length
);
}
props
.
data_table
.
ajax
.
reload
()
...
...
This diff is collapsed.
Click to expand it.
apps/templates/_nav_user.html
View file @
ef717f88
...
...
@@ -4,6 +4,8 @@
<i
class=
"fa fa-files-o"
style=
"width: 14px"
></i><span
class=
"nav-label"
>
{% trans 'My assets' %}
</span><span
class=
"label label-info pull-right"
></span>
</a>
</li>
{% if LICENSE_VALID %}
<li
id=
"applications"
>
<a>
<i
class=
"fa fa-th"
style=
"width: 14px"
></i>
<span
class=
"nav-label"
>
{% trans 'My Applications' %}
</span><span
class=
"fa arrow"
></span>
...
...
@@ -16,6 +18,8 @@
</li>
</ul>
</li>
{% endif %}
{% if SECURITY_COMMAND_EXECUTION %}
<li
id=
"ops"
>
<a
href=
"{% url 'ops:command-execution-start' %}"
>
...
...
This diff is collapsed.
Click to expand it.
apps/terminal/views/command.py
View file @
ef717f88
...
...
@@ -48,7 +48,7 @@ class CommandListView(DatetimeSearchMixin, PermissionsMixin, ListView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'
Terminal
'
),
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Command list'
),
'user_list'
:
utils
.
get_session_user_list
(),
'asset_list'
:
utils
.
get_session_asset_list
(),
...
...
This diff is collapsed.
Click to expand it.
apps/terminal/views/session.py
View file @
ef717f88
...
...
@@ -71,7 +71,7 @@ class SessionOnlineListView(SessionListView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'
Terminal
'
),
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Session online list'
),
'type'
:
'online'
,
'now'
:
timezone
.
now
(),
...
...
@@ -89,8 +89,8 @@ class SessionOfflineListView(SessionListView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'
Terminal
'
),
'action'
:
_
(
'Session offline
list
'
),
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Session offline'
),
'now'
:
timezone
.
now
(),
}
kwargs
.
update
(
context
)
...
...
@@ -113,7 +113,7 @@ class SessionDetailView(SingleObjectMixin, PermissionsMixin, ListView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
_
(
'
Terminal
'
),
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Session detail'
),
}
kwargs
.
update
(
context
)
...
...
This diff is collapsed.
Click to expand it.
apps/terminal/views/terminal.py
View file @
ef717f88
...
...
@@ -28,7 +28,7 @@ class TerminalListView(PermissionsMixin, ListView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
TerminalListView
,
self
)
.
get_context_data
(
**
kwargs
)
context
.
update
({
'app'
:
_
(
'
Terminal
'
),
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Terminal list'
),
'form'
:
self
.
form_class
()
})
...
...
@@ -44,7 +44,7 @@ class TerminalUpdateView(PermissionsMixin, UpdateView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
TerminalUpdateView
,
self
)
.
get_context_data
(
**
kwargs
)
context
.
update
({
'app'
:
_
(
'
Terminal
'
),
'action'
:
_
(
'Update terminal'
)})
context
.
update
({
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Update terminal'
)})
return
context
...
...
@@ -57,7 +57,7 @@ class TerminalDetailView(PermissionsMixin, DetailView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
TerminalDetailView
,
self
)
.
get_context_data
(
**
kwargs
)
context
.
update
({
'app'
:
_
(
'
Terminal
'
),
'app'
:
_
(
'
Sessions
'
),
'action'
:
_
(
'Terminal detail'
)
})
return
context
...
...
This diff is collapsed.
Click to expand it.
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