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
52d09615
Commit
52d09615
authored
Oct 14, 2019
by
ibuler
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of github.com:jumpserver/jumpserver into dev
parents
e0934753
13822cbf
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
205 additions
and
131 deletions
+205
-131
node.py
apps/assets/api/node.py
+8
-1
const.py
apps/assets/const.py
+14
-0
asset.py
apps/assets/forms/asset.py
+3
-6
user.py
apps/assets/forms/user.py
+2
-0
node.py
apps/assets/models/node.py
+6
-1
asset.py
apps/assets/serializers/asset.py
+7
-2
system_user.py
apps/assets/serializers/system_user.py
+14
-0
asset_detail.html
apps/assets/templates/assets/asset_detail.html
+0
-2
ldap.py
apps/authentication/backends/ldap.py
+7
-0
conf.py
apps/jumpserver/conf.py
+1
-0
settings.py
apps/jumpserver/settings.py
+1
-0
django.mo
apps/locale/zh/LC_MESSAGES/django.mo
+0
-0
django.po
apps/locale/zh/LC_MESSAGES/django.po
+122
-117
serializers.py
apps/orgs/serializers.py
+14
-1
config_example.yml
config_example.yml
+6
-1
No files found.
apps/assets/api/node.py
View file @
52d09615
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
from
rest_framework
import
generics
from
rest_framework
import
generics
,
status
from
rest_framework.serializers
import
ValidationError
from
rest_framework.serializers
import
ValidationError
from
rest_framework.views
import
APIView
from
rest_framework.views
import
APIView
from
rest_framework.response
import
Response
from
rest_framework.response
import
Response
...
@@ -59,6 +59,13 @@ class NodeViewSet(OrgModelViewSet):
...
@@ -59,6 +59,13 @@ class NodeViewSet(OrgModelViewSet):
raise
ValidationError
({
"error"
:
msg
})
raise
ValidationError
({
"error"
:
msg
})
return
super
()
.
perform_update
(
serializer
)
return
super
()
.
perform_update
(
serializer
)
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
node
=
self
.
get_object
()
if
node
.
has_children_or_contains_assets
():
msg
=
_
(
"Deletion failed and the node contains children or assets"
)
return
Response
(
data
=
{
'msg'
:
msg
},
status
=
status
.
HTTP_403_FORBIDDEN
)
return
super
()
.
destroy
(
request
,
*
args
,
**
kwargs
)
class
NodeListAsTreeApi
(
generics
.
ListAPIView
):
class
NodeListAsTreeApi
(
generics
.
ListAPIView
):
"""
"""
...
...
apps/assets/const.py
0 → 100644
View file @
52d09615
# -*- coding: utf-8 -*-
#
from
django.utils.translation
import
ugettext_lazy
as
_
GENERAL_LIMIT_SPECIAL_CHARACTERS_HELP_TEXT
=
_
(
'Only Numbers、letters、 chinese and characters ( {} ) are allowed'
)
.
format
(
" "
.
join
([
'.'
,
'_'
,
'@'
,
'-'
]))
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
=
r"^[\._@\w-]+$"
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
=
\
_
(
"* The contains characters that are not allowed"
)
apps/assets/forms/asset.py
View file @
52d09615
...
@@ -7,6 +7,7 @@ from common.utils import get_logger
...
@@ -7,6 +7,7 @@ from common.utils import get_logger
from
orgs.mixins.forms
import
OrgModelForm
from
orgs.mixins.forms
import
OrgModelForm
from
..models
import
Asset
,
Node
from
..models
import
Asset
,
Node
from
..const
import
GENERAL_LIMIT_SPECIAL_CHARACTERS_HELP_TEXT
logger
=
get_logger
(
__file__
)
logger
=
get_logger
(
__file__
)
...
@@ -14,10 +15,6 @@ __all__ = [
...
@@ -14,10 +15,6 @@ __all__ = [
'AssetCreateForm'
,
'AssetUpdateForm'
,
'AssetBulkUpdateForm'
,
'ProtocolForm'
,
'AssetCreateForm'
,
'AssetUpdateForm'
,
'AssetBulkUpdateForm'
,
'ProtocolForm'
,
]
]
HELP_TEXTS_ASSET_HOSTNAME
=
_
(
'Only Numbers、letters、 chinese and characters ( {} ) are allowed'
)
.
format
(
" "
.
join
([
'.'
,
'_'
,
'@'
]))
class
ProtocolForm
(
forms
.
Form
):
class
ProtocolForm
(
forms
.
Form
):
name
=
forms
.
ChoiceField
(
name
=
forms
.
ChoiceField
(
...
@@ -72,7 +69,7 @@ class AssetCreateForm(OrgModelForm):
...
@@ -72,7 +69,7 @@ class AssetCreateForm(OrgModelForm):
'nodes'
:
_
(
"Node"
),
'nodes'
:
_
(
"Node"
),
}
}
help_texts
=
{
help_texts
=
{
'hostname'
:
HELP_TEXTS_ASSET_HOSTNAME
,
'hostname'
:
GENERAL_LIMIT_SPECIAL_CHARACTERS_HELP_TEXT
,
'admin_user'
:
_
(
'admin_user'
:
_
(
'root or other NOPASSWD sudo privilege user existed in asset,'
'root or other NOPASSWD sudo privilege user existed in asset,'
'If asset is windows or other set any one, more see admin user left menu'
'If asset is windows or other set any one, more see admin user left menu'
...
@@ -119,7 +116,7 @@ class AssetUpdateForm(OrgModelForm):
...
@@ -119,7 +116,7 @@ class AssetUpdateForm(OrgModelForm):
'nodes'
:
_
(
"Node"
),
'nodes'
:
_
(
"Node"
),
}
}
help_texts
=
{
help_texts
=
{
'hostname'
:
HELP_TEXTS_ASSET_HOSTNAME
,
'hostname'
:
GENERAL_LIMIT_SPECIAL_CHARACTERS_HELP_TEXT
,
'admin_user'
:
_
(
'admin_user'
:
_
(
'root or other NOPASSWD sudo privilege user existed in asset,'
'root or other NOPASSWD sudo privilege user existed in asset,'
'If asset is windows or other set any one, more see admin user left menu'
'If asset is windows or other set any one, more see admin user left menu'
...
...
apps/assets/forms/user.py
View file @
52d09615
...
@@ -6,6 +6,7 @@ from django.utils.translation import gettext_lazy as _
...
@@ -6,6 +6,7 @@ from django.utils.translation import gettext_lazy as _
from
common.utils
import
validate_ssh_private_key
,
ssh_pubkey_gen
,
get_logger
from
common.utils
import
validate_ssh_private_key
,
ssh_pubkey_gen
,
get_logger
from
orgs.mixins.forms
import
OrgModelForm
from
orgs.mixins.forms
import
OrgModelForm
from
..models
import
AdminUser
,
SystemUser
from
..models
import
AdminUser
,
SystemUser
from
..const
import
GENERAL_LIMIT_SPECIAL_CHARACTERS_HELP_TEXT
logger
=
get_logger
(
__file__
)
logger
=
get_logger
(
__file__
)
__all__
=
[
__all__
=
[
...
@@ -98,6 +99,7 @@ class SystemUserForm(OrgModelForm, PasswordAndKeyAuthForm):
...
@@ -98,6 +99,7 @@ class SystemUserForm(OrgModelForm, PasswordAndKeyAuthForm):
}),
}),
}
}
help_texts
=
{
help_texts
=
{
'name'
:
GENERAL_LIMIT_SPECIAL_CHARACTERS_HELP_TEXT
,
'auto_push'
:
_
(
'Auto push system user to asset'
),
'auto_push'
:
_
(
'Auto push system user to asset'
),
'priority'
:
_
(
'1-100, 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'
),
...
...
apps/assets/models/node.py
View file @
52d09615
...
@@ -470,8 +470,13 @@ class Node(OrgModelMixin, SomeNodesMixin, TreeMixin, FamilyMixin, FullValueMixin
...
@@ -470,8 +470,13 @@ class Node(OrgModelMixin, SomeNodesMixin, TreeMixin, FamilyMixin, FullValueMixin
tree_node
=
TreeNode
(
**
data
)
tree_node
=
TreeNode
(
**
data
)
return
tree_node
return
tree_node
def
delete
(
self
,
using
=
None
,
keep_parents
=
False
):
def
has_children_or_contains_assets
(
self
):
if
self
.
children
or
self
.
get_assets
():
if
self
.
children
or
self
.
get_assets
():
return
True
return
False
def
delete
(
self
,
using
=
None
,
keep_parents
=
False
):
if
self
.
has_children_or_contains_assets
():
return
return
return
super
()
.
delete
(
using
=
using
,
keep_parents
=
keep_parents
)
return
super
()
.
delete
(
using
=
using
,
keep_parents
=
keep_parents
)
...
...
apps/assets/serializers/asset.py
View file @
52d09615
...
@@ -8,6 +8,10 @@ from django.utils.translation import ugettext_lazy as _
...
@@ -8,6 +8,10 @@ from django.utils.translation import ugettext_lazy as _
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
common.serializers
import
AdaptedBulkListSerializer
from
common.serializers
import
AdaptedBulkListSerializer
from
..models
import
Asset
,
Node
,
Label
from
..models
import
Asset
,
Node
,
Label
from
..const
import
(
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
,
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
)
from
.base
import
ConnectivitySerializer
from
.base
import
ConnectivitySerializer
__all__
=
[
__all__
=
[
...
@@ -94,10 +98,10 @@ class AssetSerializer(BulkOrgResourceModelSerializer):
...
@@ -94,10 +98,10 @@ class AssetSerializer(BulkOrgResourceModelSerializer):
@staticmethod
@staticmethod
def
validate_hostname
(
hostname
):
def
validate_hostname
(
hostname
):
pattern
=
r"^[\._@\w-]+$"
pattern
=
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
res
=
re
.
match
(
pattern
,
hostname
)
res
=
re
.
match
(
pattern
,
hostname
)
if
res
is
None
:
if
res
is
None
:
msg
=
_
(
"* The hostname contains characters that are not allowed"
)
msg
=
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
raise
serializers
.
ValidationError
(
msg
)
raise
serializers
.
ValidationError
(
msg
)
return
hostname
return
hostname
...
@@ -136,6 +140,7 @@ class AssetSerializer(BulkOrgResourceModelSerializer):
...
@@ -136,6 +140,7 @@ class AssetSerializer(BulkOrgResourceModelSerializer):
class
AssetSimpleSerializer
(
serializers
.
ModelSerializer
):
class
AssetSimpleSerializer
(
serializers
.
ModelSerializer
):
connectivity
=
ConnectivitySerializer
(
read_only
=
True
,
label
=
_
(
"Connectivity"
))
class
Meta
:
class
Meta
:
model
=
Asset
model
=
Asset
...
...
apps/assets/serializers/system_user.py
View file @
52d09615
import
re
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
...
@@ -6,6 +7,10 @@ from common.serializers import AdaptedBulkListSerializer
...
@@ -6,6 +7,10 @@ from common.serializers import AdaptedBulkListSerializer
from
common.utils
import
ssh_pubkey_gen
from
common.utils
import
ssh_pubkey_gen
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
..models
import
SystemUser
from
..models
import
SystemUser
from
..const
import
(
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
,
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
)
from
.base
import
AuthSerializer
,
AuthSerializerMixin
from
.base
import
AuthSerializer
,
AuthSerializerMixin
...
@@ -33,6 +38,15 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
...
@@ -33,6 +38,15 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
'created_by'
:
{
'read_only'
:
True
},
'created_by'
:
{
'read_only'
:
True
},
}
}
@staticmethod
def
validate_name
(
name
):
pattern
=
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
res
=
re
.
match
(
pattern
,
name
)
if
res
is
None
:
msg
=
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
raise
serializers
.
ValidationError
(
msg
)
return
name
def
validate_auto_push
(
self
,
value
):
def
validate_auto_push
(
self
,
value
):
login_mode
=
self
.
initial_data
.
get
(
"login_mode"
)
login_mode
=
self
.
initial_data
.
get
(
"login_mode"
)
protocol
=
self
.
initial_data
.
get
(
"protocol"
)
protocol
=
self
.
initial_data
.
get
(
"protocol"
)
...
...
apps/assets/templates/assets/asset_detail.html
View file @
52d09615
...
@@ -22,7 +22,6 @@
...
@@ -22,7 +22,6 @@
<li>
<li>
<a
href=
"{% url 'assets:asset-user-list' pk=asset.id %}"
class=
"text-center"
><i
class=
"fa fa-bar-chart-o"
></i>
{% trans 'Asset user list' %}
</a>
<a
href=
"{% url 'assets:asset-user-list' pk=asset.id %}"
class=
"text-center"
><i
class=
"fa fa-bar-chart-o"
></i>
{% trans 'Asset user list' %}
</a>
</li>
</li>
{% if user.is_superuser %}
<li
class=
"pull-right"
>
<li
class=
"pull-right"
>
<a
class=
"btn btn-outline btn-default"
href=
"{% url 'assets:asset-update' pk=asset.id %}"
><i
class=
"fa fa-edit"
></i>
{% trans 'Update' %}
</a>
<a
class=
"btn btn-outline btn-default"
href=
"{% url 'assets:asset-update' pk=asset.id %}"
><i
class=
"fa fa-edit"
></i>
{% trans 'Update' %}
</a>
</li>
</li>
...
@@ -31,7 +30,6 @@
...
@@ -31,7 +30,6 @@
<i
class=
"fa fa-trash-o"
></i>
{% trans 'Delete' %}
<i
class=
"fa fa-trash-o"
></i>
{% trans 'Delete' %}
</a>
</a>
</li>
</li>
{% endif %}
</ul>
</ul>
</div>
</div>
<div
class=
"tab-content"
>
<div
class=
"tab-content"
>
...
...
apps/authentication/backends/ldap.py
View file @
52d09615
...
@@ -32,6 +32,13 @@ class LDAPAuthorizationBackend(LDAPBackend):
...
@@ -32,6 +32,13 @@ class LDAPAuthorizationBackend(LDAPBackend):
if
not
username
:
if
not
username
:
logger
.
info
(
'Authenticate failed: username is None'
)
logger
.
info
(
'Authenticate failed: username is None'
)
return
None
return
None
if
settings
.
AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS
:
user_model
=
self
.
get_user_model
()
exist
=
user_model
.
objects
.
filter
(
username
=
username
)
.
exists
()
if
not
exist
:
msg
=
'Authentication failed: user ({}) is not in the user list'
logger
.
info
(
msg
.
format
(
username
))
return
None
ldap_user
=
LDAPUser
(
self
,
username
=
username
.
strip
(),
request
=
request
)
ldap_user
=
LDAPUser
(
self
,
username
=
username
.
strip
(),
request
=
request
)
user
=
self
.
authenticate_ldap_user
(
ldap_user
,
password
)
user
=
self
.
authenticate_ldap_user
(
ldap_user
,
password
)
logger
.
info
(
'Authenticate user: {}'
.
format
(
user
))
logger
.
info
(
'Authenticate user: {}'
.
format
(
user
))
...
...
apps/jumpserver/conf.py
View file @
52d09615
...
@@ -378,6 +378,7 @@ defaults = {
...
@@ -378,6 +378,7 @@ defaults = {
'AUTH_LDAP_SYNC_IS_PERIODIC'
:
False
,
'AUTH_LDAP_SYNC_IS_PERIODIC'
:
False
,
'AUTH_LDAP_SYNC_INTERVAL'
:
None
,
'AUTH_LDAP_SYNC_INTERVAL'
:
None
,
'AUTH_LDAP_SYNC_CRONTAB'
:
None
,
'AUTH_LDAP_SYNC_CRONTAB'
:
None
,
'AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS'
:
False
,
'HTTP_BIND_HOST'
:
'0.0.0.0'
,
'HTTP_BIND_HOST'
:
'0.0.0.0'
,
'HTTP_LISTEN_PORT'
:
8080
,
'HTTP_LISTEN_PORT'
:
8080
,
'WS_LISTEN_PORT'
:
8070
,
'WS_LISTEN_PORT'
:
8070
,
...
...
apps/jumpserver/settings.py
View file @
52d09615
...
@@ -429,6 +429,7 @@ AUTH_LDAP_SEARCH_PAGED_SIZE = CONFIG.AUTH_LDAP_SEARCH_PAGED_SIZE
...
@@ -429,6 +429,7 @@ AUTH_LDAP_SEARCH_PAGED_SIZE = CONFIG.AUTH_LDAP_SEARCH_PAGED_SIZE
AUTH_LDAP_SYNC_IS_PERIODIC
=
CONFIG
.
AUTH_LDAP_SYNC_IS_PERIODIC
AUTH_LDAP_SYNC_IS_PERIODIC
=
CONFIG
.
AUTH_LDAP_SYNC_IS_PERIODIC
AUTH_LDAP_SYNC_INTERVAL
=
CONFIG
.
AUTH_LDAP_SYNC_INTERVAL
AUTH_LDAP_SYNC_INTERVAL
=
CONFIG
.
AUTH_LDAP_SYNC_INTERVAL
AUTH_LDAP_SYNC_CRONTAB
=
CONFIG
.
AUTH_LDAP_SYNC_CRONTAB
AUTH_LDAP_SYNC_CRONTAB
=
CONFIG
.
AUTH_LDAP_SYNC_CRONTAB
AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS
=
CONFIG
.
AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS
AUTH_LDAP_SERVER_URI
=
'ldap://localhost:389'
AUTH_LDAP_SERVER_URI
=
'ldap://localhost:389'
AUTH_LDAP_BIND_DN
=
'cn=admin,dc=jumpserver,dc=org'
AUTH_LDAP_BIND_DN
=
'cn=admin,dc=jumpserver,dc=org'
...
...
apps/locale/zh/LC_MESSAGES/django.mo
View file @
52d09615
No preview for this file type
apps/locale/zh/LC_MESSAGES/django.po
View file @
52d09615
...
@@ -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: 2019-10-
08 17:09
+0800\n"
"POT-Creation-Date: 2019-10-
12 17:06
+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"
...
@@ -78,7 +78,7 @@ msgstr "运行参数"
...
@@ -78,7 +78,7 @@ 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:295 assets/models/authbook.py:24
#: assets/models/asset.py:295 assets/models/authbook.py:24
#: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:32
#: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:32
#: assets/serializers/asset_user.py:82 assets/serializers/system_user.py:3
1
#: assets/serializers/asset_user.py:82 assets/serializers/system_user.py:3
6
#: assets/templates/assets/admin_user_list.html:46
#: assets/templates/assets/admin_user_list.html:46
#: 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
...
@@ -112,9 +112,9 @@ msgstr "资产"
...
@@ -112,9 +112,9 @@ msgstr "资产"
#: applications/templates/applications/remote_app_detail.html:53
#: applications/templates/applications/remote_app_detail.html:53
#: applications/templates/applications/remote_app_list.html:20
#: applications/templates/applications/remote_app_list.html:20
#: applications/templates/applications/user_remote_app_list.html:16
#: applications/templates/applications/user_remote_app_list.html:16
#: assets/forms/asset.py:2
4 assets/forms/domain.py:73 assets/forms/user.py:74
#: assets/forms/asset.py:2
1 assets/forms/domain.py:73 assets/forms/user.py:75
#: assets/forms/user.py:9
4
assets/models/base.py:28 assets/models/cluster.py:18
#: assets/forms/user.py:9
5
assets/models/base.py:28 assets/models/cluster.py:18
#: assets/models/cmd_filter.py:2
0
assets/models/domain.py:20
#: assets/models/cmd_filter.py:2
1
assets/models/domain.py:20
#: assets/models/group.py:20 assets/models/label.py:18
#: assets/models/group.py:20 assets/models/label.py:18
#: assets/templates/assets/admin_user_detail.html:56
#: assets/templates/assets/admin_user_detail.html:56
#: assets/templates/assets/admin_user_list.html:44
#: assets/templates/assets/admin_user_list.html:44
...
@@ -186,10 +186,10 @@ msgstr "参数"
...
@@ -186,10 +186,10 @@ msgstr "参数"
#: applications/models/remote_app.py:39
#: applications/models/remote_app.py:39
#: applications/templates/applications/remote_app_detail.html:73
#: applications/templates/applications/remote_app_detail.html:73
#: assets/models/asset.py:174 assets/models/base.py:36
#: assets/models/asset.py:174 assets/models/base.py:36
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:2
5
#: assets/models/cluster.py:28 assets/models/cmd_filter.py:2
6
#: assets/models/cmd_filter.py:5
8
assets/models/group.py:21
#: assets/models/cmd_filter.py:5
9
assets/models/group.py:21
#: assets/templates/assets/admin_user_detail.html:68
#: assets/templates/assets/admin_user_detail.html:68
#: assets/templates/assets/asset_detail.html:12
4
#: assets/templates/assets/asset_detail.html:12
2
#: assets/templates/assets/cmd_filter_detail.html:77
#: assets/templates/assets/cmd_filter_detail.html:77
#: assets/templates/assets/domain_detail.html:72
#: assets/templates/assets/domain_detail.html:72
#: assets/templates/assets/system_user_detail.html:100
#: assets/templates/assets/system_user_detail.html:100
...
@@ -238,12 +238,12 @@ msgstr "创建日期"
...
@@ -238,12 +238,12 @@ msgstr "创建日期"
#: applications/templates/applications/remote_app_list.html:23
#: applications/templates/applications/remote_app_list.html:23
#: applications/templates/applications/user_remote_app_list.html:19
#: applications/templates/applications/user_remote_app_list.html:19
#: assets/models/asset.py:176 assets/models/base.py:33
#: assets/models/asset.py:176 assets/models/base.py:33
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:2
2
#: assets/models/cluster.py:29 assets/models/cmd_filter.py:2
3
#: assets/models/cmd_filter.py:5
5
assets/models/domain.py:21
#: assets/models/cmd_filter.py:5
6
assets/models/domain.py:21
#: assets/models/domain.py:53 assets/models/group.py:23
#: assets/models/domain.py:53 assets/models/group.py:23
#: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:72
#: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:72
#: assets/templates/assets/admin_user_list.html:50
#: assets/templates/assets/admin_user_list.html:50
#: assets/templates/assets/asset_detail.html:13
2
#: assets/templates/assets/asset_detail.html:13
0
#: assets/templates/assets/cmd_filter_detail.html:65
#: assets/templates/assets/cmd_filter_detail.html:65
#: assets/templates/assets/cmd_filter_list.html:27
#: assets/templates/assets/cmd_filter_list.html:27
#: assets/templates/assets/cmd_filter_rule_list.html:62
#: assets/templates/assets/cmd_filter_rule_list.html:62
...
@@ -394,7 +394,7 @@ msgstr "详情"
...
@@ -394,7 +394,7 @@ msgstr "详情"
#: assets/templates/assets/admin_user_detail.html:24
#: assets/templates/assets/admin_user_detail.html:24
#: assets/templates/assets/admin_user_list.html:26
#: assets/templates/assets/admin_user_list.html:26
#: assets/templates/assets/admin_user_list.html:111
#: assets/templates/assets/admin_user_list.html:111
#: assets/templates/assets/asset_detail.html:2
7
#: assets/templates/assets/asset_detail.html:2
6
#: assets/templates/assets/asset_list.html:78
#: assets/templates/assets/asset_list.html:78
#: assets/templates/assets/asset_list.html:167
#: assets/templates/assets/asset_list.html:167
#: assets/templates/assets/cmd_filter_detail.html:29
#: assets/templates/assets/cmd_filter_detail.html:29
...
@@ -440,7 +440,7 @@ msgstr "更新"
...
@@ -440,7 +440,7 @@ msgstr "更新"
#: applications/templates/applications/remote_app_list.html:55
#: applications/templates/applications/remote_app_list.html:55
#: assets/templates/assets/admin_user_detail.html:28
#: assets/templates/assets/admin_user_detail.html:28
#: assets/templates/assets/admin_user_list.html:112
#: assets/templates/assets/admin_user_list.html:112
#: assets/templates/assets/asset_detail.html:3
1
#: assets/templates/assets/asset_detail.html:3
0
#: assets/templates/assets/asset_list.html:168
#: assets/templates/assets/asset_list.html:168
#: assets/templates/assets/cmd_filter_detail.html:33
#: assets/templates/assets/cmd_filter_detail.html:33
#: assets/templates/assets/cmd_filter_list.html:59
#: assets/templates/assets/cmd_filter_list.html:59
...
@@ -498,7 +498,7 @@ msgstr "创建远程应用"
...
@@ -498,7 +498,7 @@ msgstr "创建远程应用"
#: applications/templates/applications/remote_app_list.html:24
#: applications/templates/applications/remote_app_list.html:24
#: applications/templates/applications/user_remote_app_list.html:20
#: applications/templates/applications/user_remote_app_list.html:20
#: assets/models/cmd_filter.py:5
4
#: assets/models/cmd_filter.py:5
5
#: assets/templates/assets/_asset_user_list.html:25
#: assets/templates/assets/_asset_user_list.html:25
#: assets/templates/assets/admin_user_list.html:51
#: assets/templates/assets/admin_user_list.html:51
#: assets/templates/assets/asset_list.html:100
#: assets/templates/assets/asset_list.html:100
...
@@ -568,28 +568,36 @@ msgstr "我的远程应用"
...
@@ -568,28 +568,36 @@ msgstr "我的远程应用"
msgid "You can't update the root node name"
msgid "You can't update the root node name"
msgstr "不能修改根节点名称"
msgstr "不能修改根节点名称"
#: assets/api/node.py:266
#: assets/api/node.py:65
msgid "Deletion failed and the node contains children or assets"
msgstr "删除失败,节点包含子节点或资产"
#: assets/api/node.py:273
msgid "Update node asset hardware information: {}"
msgid "Update node asset hardware information: {}"
msgstr "更新节点资产硬件信息: {}"
msgstr "更新节点资产硬件信息: {}"
#: assets/api/node.py:28
0
#: assets/api/node.py:28
7
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:1
8
#: assets/
const.py:
8
msgid "Only Numbers、letters、 chinese and characters ( {} ) are allowed"
msgid "Only Numbers、letters、 chinese and characters ( {} ) are allowed"
msgstr "只允许包含数字、字母、中文和特殊字符( {} )"
msgstr "只允许包含数字、字母、中文和特殊字符( {} )"
#: assets/forms/asset.py:28 assets/models/asset.py:140
#: assets/const.py:14
msgid "* The contains characters that are not allowed"
msgstr "* 包含不被允许的字符"
#: assets/forms/asset.py:25 assets/models/asset.py:140
#: assets/models/domain.py:50
#: assets/models/domain.py:50
#: assets/templates/assets/domain_gateway_list.html:69
#: assets/templates/assets/domain_gateway_list.html:69
#: settings/templates/settings/replay_storage_create.html:59
#: settings/templates/settings/replay_storage_create.html:59
msgid "Port"
msgid "Port"
msgstr "端口"
msgstr "端口"
#: assets/forms/asset.py:5
9
assets/models/asset.py:145
#: assets/forms/asset.py:5
6
assets/models/asset.py:145
#: assets/models/user.py:110 assets/templates/assets/asset_detail.html:1
90
#: assets/models/user.py:110 assets/templates/assets/asset_detail.html:1
88
#: assets/templates/assets/asset_detail.html:19
8
#: assets/templates/assets/asset_detail.html:19
6
#: assets/templates/assets/system_user_assets.html:83
#: assets/templates/assets/system_user_assets.html:83
#: perms/models/asset_permission.py:81
#: perms/models/asset_permission.py:81
#: xpack/plugins/change_auth_plan/models.py:74
#: xpack/plugins/change_auth_plan/models.py:74
...
@@ -598,16 +606,16 @@ msgstr "端口"
...
@@ -598,16 +606,16 @@ msgstr "端口"
msgid "Nodes"
msgid "Nodes"
msgstr "节点"
msgstr "节点"
#: assets/forms/asset.py:
62 assets/forms/asset.py:109
#: assets/forms/asset.py:
59 assets/forms/asset.py:106
#: assets/models/asset.py:149 assets/models/cluster.py:19
#: assets/models/asset.py:149 assets/models/cluster.py:19
#: assets/models/user.py:68 assets/templates/assets/asset_detail.html:7
6
#: assets/models/user.py:68 assets/templates/assets/asset_detail.html:7
4
#: templates/_nav.html:44 xpack/plugins/cloud/models.py:161
#: templates/_nav.html:44 xpack/plugins/cloud/models.py:161
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:68
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:68
#: xpack/plugins/orgs/templates/orgs/org_list.html:19
#: xpack/plugins/orgs/templates/orgs/org_list.html:19
msgid "Admin user"
msgid "Admin user"
msgstr "管理用户"
msgstr "管理用户"
#: assets/forms/asset.py:6
5 assets/forms/asset.py:112 assets/forms/asset.py:152
#: assets/forms/asset.py:6
2 assets/forms/asset.py:109 assets/forms/asset.py:149
#: assets/templates/assets/asset_create.html:48
#: assets/templates/assets/asset_create.html:48
#: assets/templates/assets/asset_create.html:50
#: assets/templates/assets/asset_create.html:50
#: assets/templates/assets/asset_list.html:85
#: assets/templates/assets/asset_list.html:85
...
@@ -615,16 +623,16 @@ msgstr "管理用户"
...
@@ -615,16 +623,16 @@ msgstr "管理用户"
msgid "Label"
msgid "Label"
msgstr "标签"
msgstr "标签"
#: assets/forms/asset.py:6
8 assets/forms/asset.py:115
#: assets/forms/asset.py:6
5 assets/forms/asset.py:112
#: assets/models/asset.py:144 assets/models/domain.py:26
#: assets/models/asset.py:144 assets/models/domain.py:26
#: assets/models/domain.py:52 assets/templates/assets/asset_detail.html:
80
#: assets/models/domain.py:52 assets/templates/assets/asset_detail.html:
78
#: assets/templates/assets/user_asset_list.html:53
#: assets/templates/assets/user_asset_list.html:53
#: xpack/plugins/orgs/templates/orgs/org_list.html:18
#: xpack/plugins/orgs/templates/orgs/org_list.html:18
msgid "Domain"
msgid "Domain"
msgstr "网域"
msgstr "网域"
#: assets/forms/asset.py:
72 assets/forms/asset.py:106 assets/forms/asset.py:119
#: assets/forms/asset.py:
69 assets/forms/asset.py:103 assets/forms/asset.py:116
#: assets/forms/asset.py:15
5
assets/models/node.py:409
#: assets/forms/asset.py:15
2
assets/models/node.py:409
#: assets/templates/assets/asset_create.html:42
#: assets/templates/assets/asset_create.html:42
#: perms/forms/asset_permission.py:83 perms/forms/asset_permission.py:90
#: perms/forms/asset_permission.py:83 perms/forms/asset_permission.py:90
#: perms/templates/perms/asset_permission_list.html:53
#: perms/templates/perms/asset_permission_list.html:53
...
@@ -639,7 +647,7 @@ msgstr "网域"
...
@@ -639,7 +647,7 @@ msgstr "网域"
msgid "Node"
msgid "Node"
msgstr "节点"
msgstr "节点"
#: assets/forms/asset.py:7
7 assets/forms/asset.py:124
#: assets/forms/asset.py:7
4 assets/forms/asset.py:121
msgid ""
msgid ""
"root or other NOPASSWD sudo privilege user existed in asset,If asset is "
"root or other NOPASSWD sudo privilege user existed in asset,If asset is "
"windows or other set any one, more see admin user left menu"
"windows or other set any one, more see admin user left menu"
...
@@ -647,16 +655,16 @@ msgstr ""
...
@@ -647,16 +655,16 @@ msgstr ""
"root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一"
"root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一"
"个, 更多信息查看左侧 `管理用户` 菜单"
"个, 更多信息查看左侧 `管理用户` 菜单"
#: assets/forms/asset.py:
80 assets/forms/asset.py:127
#: assets/forms/asset.py:
77 assets/forms/asset.py:124
msgid "Windows 2016 RDP protocol is different, If is window 2016, set it"
msgid "Windows 2016 RDP protocol is different, If is window 2016, set it"
msgstr "Windows 2016的RDP协议与之前不同,如果是请设置"
msgstr "Windows 2016的RDP协议与之前不同,如果是请设置"
#: assets/forms/asset.py:
81 assets/forms/asset.py:128
#: assets/forms/asset.py:
78 assets/forms/asset.py:125
msgid ""
msgid ""
"If your have some network not connect with each other, you can set domain"
"If your have some network not connect with each other, you can set domain"
msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,使用网域网关跳转登录"
msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,使用网域网关跳转登录"
#: assets/forms/asset.py:13
5 assets/forms/asset.py:139
#: assets/forms/asset.py:13
2 assets/forms/asset.py:136
#: assets/forms/domain.py:17 assets/forms/label.py:15
#: assets/forms/domain.py:17 assets/forms/label.py:15
#: perms/templates/perms/asset_permission_asset.html:78
#: perms/templates/perms/asset_permission_asset.html:78
#: xpack/plugins/change_auth_plan/forms.py:55
#: xpack/plugins/change_auth_plan/forms.py:55
...
@@ -676,7 +684,7 @@ msgstr "不能包含特殊字符"
...
@@ -676,7 +684,7 @@ msgstr "不能包含特殊字符"
msgid "SSH gateway support proxy SSH,RDP,VNC"
msgid "SSH gateway support proxy SSH,RDP,VNC"
msgstr "SSH网关,支持代理SSH,RDP和VNC"
msgstr "SSH网关,支持代理SSH,RDP和VNC"
#: assets/forms/domain.py:74 assets/forms/user.py:7
5 assets/forms/user.py:95
#: assets/forms/domain.py:74 assets/forms/user.py:7
6 assets/forms/user.py:96
#: assets/models/base.py:29 assets/models/gathered_user.py:16
#: assets/models/base.py:29 assets/models/gathered_user.py:16
#: assets/templates/assets/_asset_user_auth_update_modal.html:15
#: assets/templates/assets/_asset_user_auth_update_modal.html:15
#: assets/templates/assets/_asset_user_auth_view_modal.html:21
#: assets/templates/assets/_asset_user_auth_view_modal.html:21
...
@@ -708,11 +716,11 @@ msgstr "SSH网关,支持代理SSH,RDP和VNC"
...
@@ -708,11 +716,11 @@ msgstr "SSH网关,支持代理SSH,RDP和VNC"
msgid "Username"
msgid "Username"
msgstr "用户名"
msgstr "用户名"
#: assets/forms/user.py:2
5
#: assets/forms/user.py:2
6
msgid "Password or private key passphrase"
msgid "Password or private key passphrase"
msgstr "密码或密钥密码"
msgstr "密码或密钥密码"
#: assets/forms/user.py:2
6
assets/models/base.py:30
#: assets/forms/user.py:2
7
assets/models/base.py:30
#: assets/serializers/asset_user.py:63
#: assets/serializers/asset_user.py:63
#: assets/templates/assets/_asset_user_auth_update_modal.html:21
#: assets/templates/assets/_asset_user_auth_update_modal.html:21
#: assets/templates/assets/_asset_user_auth_view_modal.html:27
#: assets/templates/assets/_asset_user_auth_view_modal.html:27
...
@@ -731,31 +739,31 @@ msgstr "密码或密钥密码"
...
@@ -731,31 +739,31 @@ msgstr "密码或密钥密码"
msgid "Password"
msgid "Password"
msgstr "密码"
msgstr "密码"
#: assets/forms/user.py:
29
assets/serializers/asset_user.py:71
#: assets/forms/user.py:
30
assets/serializers/asset_user.py:71
#: assets/templates/assets/_asset_user_auth_update_modal.html:27
#: assets/templates/assets/_asset_user_auth_update_modal.html:27
#: users/models/user.py:400
#: users/models/user.py:400
msgid "Private key"
msgid "Private key"
msgstr "ssh私钥"
msgstr "ssh私钥"
#: assets/forms/user.py:4
1
#: assets/forms/user.py:4
2
msgid "Invalid private key, Only support RSA/DSA format key"
msgid "Invalid private key, Only support RSA/DSA format key"
msgstr "不合法的密钥,仅支持RSA/DSA格式的密钥"
msgstr "不合法的密钥,仅支持RSA/DSA格式的密钥"
#: assets/forms/user.py:5
2
#: assets/forms/user.py:5
3
msgid "Password and private key file must be input one"
msgid "Password and private key file must be input one"
msgstr "密码和私钥, 必须输入一个"
msgstr "密码和私钥, 必须输入一个"
#: assets/forms/user.py:9
7 assets/models/cmd_filter.py:31
#: assets/forms/user.py:9
8 assets/models/cmd_filter.py:32
#: assets/models/user.py:118 assets/templates/assets/_system_user.html:66
#: assets/models/user.py:118 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"
msgstr "命令过滤器"
msgstr "命令过滤器"
#: assets/forms/user.py:10
1
#: assets/forms/user.py:10
3
msgid "Auto push system user to asset"
msgid "Auto push system user to asset"
msgstr "自动推送系统用户到资产"
msgstr "自动推送系统用户到资产"
#: assets/forms/user.py:10
2
#: assets/forms/user.py:10
4
msgid ""
msgid ""
"1-100, High level will be using login asset as default, if user was granted "
"1-100, High level will be using login asset as default, if user was granted "
"more than 2 system user"
"more than 2 system user"
...
@@ -763,13 +771,13 @@ msgstr ""
...
@@ -763,13 +771,13 @@ msgstr ""
"1-100, 1最低优先级,100最高优先级。授权多个用户时,高优先级的系统用户将会作为"
"1-100, 1最低优先级,100最高优先级。授权多个用户时,高优先级的系统用户将会作为"
"默认登录用户"
"默认登录用户"
#: assets/forms/user.py:10
4
#: assets/forms/user.py:10
6
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/forms/user.py:10
6
#: assets/forms/user.py:10
8
msgid "Use comma split multi command, ex: /bin/whoami,/bin/ifconfig"
msgid "Use comma split multi command, ex: /bin/whoami,/bin/ifconfig"
msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
...
@@ -777,7 +785,7 @@ msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
...
@@ -777,7 +785,7 @@ msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
#: assets/serializers/asset_user.py:28
#: assets/serializers/asset_user.py:28
#: assets/templates/assets/_asset_list_modal.html:47
#: assets/templates/assets/_asset_list_modal.html:47
#: assets/templates/assets/_asset_user_list.html:20
#: assets/templates/assets/_asset_user_list.html:20
#: assets/templates/assets/asset_detail.html:6
4
#: assets/templates/assets/asset_detail.html:6
2
#: assets/templates/assets/asset_list.html:97
#: assets/templates/assets/asset_list.html:97
#: assets/templates/assets/domain_gateway_list.html:68
#: assets/templates/assets/domain_gateway_list.html:68
#: assets/templates/assets/user_asset_list.html:49
#: assets/templates/assets/user_asset_list.html:49
...
@@ -795,7 +803,7 @@ msgstr "IP"
...
@@ -795,7 +803,7 @@ msgstr "IP"
#: assets/templates/assets/_asset_user_auth_update_modal.html:9
#: assets/templates/assets/_asset_user_auth_update_modal.html:9
#: assets/templates/assets/_asset_user_auth_view_modal.html:15
#: assets/templates/assets/_asset_user_auth_view_modal.html:15
#: assets/templates/assets/_asset_user_list.html:19
#: assets/templates/assets/_asset_user_list.html:19
#: assets/templates/assets/asset_detail.html:
60
#: assets/templates/assets/asset_detail.html:
58
#: assets/templates/assets/asset_list.html:96
#: assets/templates/assets/asset_list.html:96
#: assets/templates/assets/user_asset_list.html:48
#: assets/templates/assets/user_asset_list.html:48
#: perms/templates/perms/asset_permission_asset.html:57
#: perms/templates/perms/asset_permission_asset.html:57
...
@@ -807,7 +815,7 @@ msgid "Hostname"
...
@@ -807,7 +815,7 @@ msgid "Hostname"
msgstr "主机名"
msgstr "主机名"
#: assets/models/asset.py:139 assets/models/domain.py:51
#: assets/models/asset.py:139 assets/models/domain.py:51
#: assets/models/user.py:113 assets/templates/assets/asset_detail.html:7
2
#: assets/models/user.py:113 assets/templates/assets/asset_detail.html:7
0
#: assets/templates/assets/domain_gateway_list.html:70
#: assets/templates/assets/domain_gateway_list.html:70
#: assets/templates/assets/system_user_detail.html:70
#: assets/templates/assets/system_user_detail.html:70
#: assets/templates/assets/system_user_list.html:53
#: assets/templates/assets/system_user_list.html:53
...
@@ -815,41 +823,41 @@ msgstr "主机名"
...
@@ -815,41 +823,41 @@ msgstr "主机名"
msgid "Protocol"
msgid "Protocol"
msgstr "协议"
msgstr "协议"
#: assets/models/asset.py:142 assets/serializers/asset.py:6
4
#: assets/models/asset.py:142 assets/serializers/asset.py:6
8
#: assets/templates/assets/asset_create.html:24
#: assets/templates/assets/asset_create.html:24
#: assets/templates/assets/user_asset_list.html:50
#: assets/templates/assets/user_asset_list.html:50
#: perms/serializers/user_permission.py:48
#: perms/serializers/user_permission.py:48
msgid "Protocols"
msgid "Protocols"
msgstr "协议组"
msgstr "协议组"
#: assets/models/asset.py:143 assets/templates/assets/asset_detail.html:10
4
#: assets/models/asset.py:143 assets/templates/assets/asset_detail.html:10
2
#: assets/templates/assets/user_asset_list.html:51
#: assets/templates/assets/user_asset_list.html:51
msgid "Platform"
msgid "Platform"
msgstr "系统平台"
msgstr "系统平台"
#: assets/models/asset.py:146 assets/models/authbook.py:27
#: assets/models/asset.py:146 assets/models/authbook.py:27
#: assets/models/cmd_filter.py:2
1
assets/models/domain.py:54
#: assets/models/cmd_filter.py:2
2
assets/models/domain.py:54
#: assets/models/label.py:22 assets/templates/assets/asset_detail.html:11
2
#: assets/models/label.py:22 assets/templates/assets/asset_detail.html:11
0
msgid "Is active"
msgid "Is active"
msgstr "激活"
msgstr "激活"
#: assets/models/asset.py:152 assets/templates/assets/asset_detail.html:6
8
#: assets/models/asset.py:152 assets/templates/assets/asset_detail.html:6
6
msgid "Public IP"
msgid "Public IP"
msgstr "公网IP"
msgstr "公网IP"
#: assets/models/asset.py:153 assets/templates/assets/asset_detail.html:1
20
#: assets/models/asset.py:153 assets/templates/assets/asset_detail.html:1
18
msgid "Asset number"
msgid "Asset number"
msgstr "资产编号"
msgstr "资产编号"
#: assets/models/asset.py:156 assets/templates/assets/asset_detail.html:8
4
#: assets/models/asset.py:156 assets/templates/assets/asset_detail.html:8
2
msgid "Vendor"
msgid "Vendor"
msgstr "制造商"
msgstr "制造商"
#: assets/models/asset.py:157 assets/templates/assets/asset_detail.html:8
8
#: assets/models/asset.py:157 assets/templates/assets/asset_detail.html:8
6
msgid "Model"
msgid "Model"
msgstr "型号"
msgstr "型号"
#: assets/models/asset.py:158 assets/templates/assets/asset_detail.html:11
6
#: assets/models/asset.py:158 assets/templates/assets/asset_detail.html:11
4
msgid "Serial number"
msgid "Serial number"
msgstr "序列号"
msgstr "序列号"
...
@@ -870,7 +878,7 @@ msgstr "CPU核数"
...
@@ -870,7 +878,7 @@ msgstr "CPU核数"
msgid "CPU vcpus"
msgid "CPU vcpus"
msgstr "CPU总数"
msgstr "CPU总数"
#: assets/models/asset.py:164 assets/templates/assets/asset_detail.html:9
6
#: assets/models/asset.py:164 assets/templates/assets/asset_detail.html:9
4
msgid "Memory"
msgid "Memory"
msgstr "内存"
msgstr "内存"
...
@@ -882,7 +890,7 @@ msgstr "硬盘大小"
...
@@ -882,7 +890,7 @@ msgstr "硬盘大小"
msgid "Disk info"
msgid "Disk info"
msgstr "硬盘信息"
msgstr "硬盘信息"
#: assets/models/asset.py:168 assets/templates/assets/asset_detail.html:10
8
#: assets/models/asset.py:168 assets/templates/assets/asset_detail.html:10
6
msgid "OS"
msgid "OS"
msgstr "操作系统"
msgstr "操作系统"
...
@@ -899,7 +907,7 @@ msgid "Hostname raw"
...
@@ -899,7 +907,7 @@ msgid "Hostname raw"
msgstr "主机名原始"
msgstr "主机名原始"
#: assets/models/asset.py:173 assets/templates/assets/asset_create.html:46
#: assets/models/asset.py:173 assets/templates/assets/asset_create.html:46
#: assets/templates/assets/asset_detail.html:22
4
templates/_nav.html:46
#: assets/templates/assets/asset_detail.html:22
2
templates/_nav.html:46
msgid "Labels"
msgid "Labels"
msgstr "标签管理"
msgstr "标签管理"
...
@@ -994,11 +1002,11 @@ msgstr "北京电信"
...
@@ -994,11 +1002,11 @@ msgstr "北京电信"
msgid "BGP full netcom"
msgid "BGP full netcom"
msgstr "BGP全网通"
msgstr "BGP全网通"
#: assets/models/cmd_filter.py:3
8
#: assets/models/cmd_filter.py:3
9
msgid "Regex"
msgid "Regex"
msgstr "正则表达式"
msgstr "正则表达式"
#: assets/models/cmd_filter.py:
39
ops/models/command.py:21
#: assets/models/cmd_filter.py:
40
ops/models/command.py:21
#: ops/templates/ops/command_execution_list.html:64 terminal/models.py:163
#: ops/templates/ops/command_execution_list.html:64 terminal/models.py:163
#: terminal/templates/terminal/command_list.html:28
#: terminal/templates/terminal/command_list.html:28
#: terminal/templates/terminal/command_list.html:68
#: terminal/templates/terminal/command_list.html:68
...
@@ -1007,19 +1015,19 @@ msgstr "正则表达式"
...
@@ -1007,19 +1015,19 @@ msgstr "正则表达式"
msgid "Command"
msgid "Command"
msgstr "命令"
msgstr "命令"
#: assets/models/cmd_filter.py:4
4
#: assets/models/cmd_filter.py:4
5
msgid "Deny"
msgid "Deny"
msgstr "拒绝"
msgstr "拒绝"
#: assets/models/cmd_filter.py:4
5
#: assets/models/cmd_filter.py:4
6
msgid "Allow"
msgid "Allow"
msgstr "允许"
msgstr "允许"
#: assets/models/cmd_filter.py:
49
#: assets/models/cmd_filter.py:
50
msgid "Filter"
msgid "Filter"
msgstr "过滤器"
msgstr "过滤器"
#: assets/models/cmd_filter.py:5
0
#: assets/models/cmd_filter.py:5
1
#: assets/templates/assets/cmd_filter_rule_list.html:58
#: assets/templates/assets/cmd_filter_rule_list.html:58
#: audits/templates/audits/login_log_list.html:58
#: audits/templates/audits/login_log_list.html:58
#: perms/templates/perms/remote_app_permission_remote_app.html:54
#: perms/templates/perms/remote_app_permission_remote_app.html:54
...
@@ -1030,26 +1038,26 @@ msgstr "过滤器"
...
@@ -1030,26 +1038,26 @@ msgstr "过滤器"
msgid "Type"
msgid "Type"
msgstr "类型"
msgstr "类型"
#: assets/models/cmd_filter.py:5
1
assets/models/user.py:112
#: assets/models/cmd_filter.py:5
2
assets/models/user.py:112
#: 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:5
1
#: assets/models/cmd_filter.py:5
2
msgid "1-100, the higher will be match first"
msgid "1-100, the higher will be match first"
msgstr "优先级可选范围为1-100,1最低优先级,100最高优先级"
msgstr "优先级可选范围为1-100,1最低优先级,100最高优先级"
#: assets/models/cmd_filter.py:5
3
#: assets/models/cmd_filter.py:5
4
#: assets/templates/assets/cmd_filter_rule_list.html:59
#: assets/templates/assets/cmd_filter_rule_list.html:59
#: xpack/plugins/license/models.py:29
#: xpack/plugins/license/models.py:29
msgid "Content"
msgid "Content"
msgstr "内容"
msgstr "内容"
#: assets/models/cmd_filter.py:5
3
#: assets/models/cmd_filter.py:5
4
msgid "One line one command"
msgid "One line one command"
msgstr "每行一个命令"
msgstr "每行一个命令"
#: assets/models/cmd_filter.py:6
4
#: assets/models/cmd_filter.py:6
3
msgid "Command filter rule"
msgid "Command filter rule"
msgstr "命令过滤规则"
msgstr "命令过滤规则"
...
@@ -1208,45 +1216,41 @@ msgstr "系统用户"
...
@@ -1208,45 +1216,41 @@ msgstr "系统用户"
msgid "%(value)s is not an even number"
msgid "%(value)s is not an even number"
msgstr "%(value)s is not an even number"
msgstr "%(value)s is not an even number"
#: assets/models/utils.py:43 assets/tasks/const.py:8
1
#: assets/models/utils.py:43 assets/tasks/const.py:8
4
msgid "Unreachable"
msgid "Unreachable"
msgstr "不可达"
msgstr "不可达"
#: assets/models/utils.py:44 assets/tasks/const.py:8
2
#: assets/models/utils.py:44 assets/tasks/const.py:8
5
#: assets/templates/assets/asset_list.html:99
#: assets/templates/assets/asset_list.html:99
msgid "Reachable"
msgid "Reachable"
msgstr "可连接"
msgstr "可连接"
#: assets/models/utils.py:45 assets/tasks/const.py:8
3
#: assets/models/utils.py:45 assets/tasks/const.py:8
6
#: authentication/utils.py:13 xpack/plugins/license/models.py:78
#: authentication/utils.py:13 xpack/plugins/license/models.py:78
msgid "Unknown"
msgid "Unknown"
msgstr "未知"
msgstr "未知"
#: assets/serializers/asset.py:2
2
#: assets/serializers/asset.py:2
6
msgid "Protocol format should {}/{}"
msgid "Protocol format should {}/{}"
msgstr "协议格式 {}/{}"
msgstr "协议格式 {}/{}"
#: assets/serializers/asset.py:
39
#: assets/serializers/asset.py:
43
msgid "Protocol duplicate: {}"
msgid "Protocol duplicate: {}"
msgstr "协议重复: {}"
msgstr "协议重复: {}"
#: assets/serializers/asset.py:6
5
assets/serializers/asset_user.py:29
#: assets/serializers/asset.py:6
9
assets/serializers/asset_user.py:29
#: assets/templates/assets/_asset_user_list.html:23
#: assets/templates/assets/_asset_user_list.html:23
msgid "Connectivity"
msgid "Connectivity"
msgstr "连接"
msgstr "连接"
#: assets/serializers/asset.py:9
1
#: assets/serializers/asset.py:9
5
msgid "Hardware info"
msgid "Hardware info"
msgstr "硬件信息"
msgstr "硬件信息"
#: assets/serializers/asset.py:9
2
orgs/mixins/serializers.py:27
#: assets/serializers/asset.py:9
6
orgs/mixins/serializers.py:27
msgid "Org name"
msgid "Org name"
msgstr "组织名称"
msgstr "组织名称"
#: assets/serializers/asset.py:100
msgid "* The hostname contains characters that are not allowed"
msgstr "* 主机名包含不被允许的字符"
#: assets/serializers/asset_user.py:31
#: assets/serializers/asset_user.py:31
msgid "Backend"
msgid "Backend"
msgstr "后端"
msgstr "后端"
...
@@ -1277,15 +1281,15 @@ msgstr "值"
...
@@ -1277,15 +1281,15 @@ msgstr "值"
msgid "The same level node name cannot be the same"
msgid "The same level node name cannot be the same"
msgstr "同级别节点名字不能重复"
msgstr "同级别节点名字不能重复"
#: assets/serializers/system_user.py:3
2
#: assets/serializers/system_user.py:3
7
msgid "Login mode display"
msgid "Login mode display"
msgstr "登录模式显示"
msgstr "登录模式显示"
#: assets/serializers/system_user.py:
67
#: assets/serializers/system_user.py:
81
msgid "* Automatic login mode must fill in the username."
msgid "* Automatic login mode must fill in the username."
msgstr "自动登录模式,必须填写用户名"
msgstr "自动登录模式,必须填写用户名"
#: assets/serializers/system_user.py:
78
#: assets/serializers/system_user.py:
92
msgid "Password or private key required"
msgid "Password or private key required"
msgstr "密码或密钥密码需要一个"
msgstr "密码或密钥密码需要一个"
...
@@ -1424,6 +1428,7 @@ msgstr "资产列表"
...
@@ -1424,6 +1428,7 @@ msgstr "资产列表"
#: assets/templates/assets/_asset_list_modal.html:33
#: assets/templates/assets/_asset_list_modal.html:33
#: assets/templates/assets/_node_tree.html:40
#: assets/templates/assets/_node_tree.html:40
#: ops/templates/ops/command_execution_create.html:49
#: ops/templates/ops/command_execution_create.html:49
#: ops/templates/ops/command_execution_create.html:143
#: users/templates/users/_granted_assets.html:7
#: users/templates/users/_granted_assets.html:7
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_create_update.html:66
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_create_update.html:66
msgid "Loading"
msgid "Loading"
...
@@ -1443,7 +1448,7 @@ msgid "Please input password"
...
@@ -1443,7 +1448,7 @@ msgid "Please input password"
msgstr "请输入密码"
msgstr "请输入密码"
#: assets/templates/assets/_asset_user_auth_update_modal.html:68
#: assets/templates/assets/_asset_user_auth_update_modal.html:68
#: assets/templates/assets/asset_detail.html:30
4
#: assets/templates/assets/asset_detail.html:30
2
#: users/templates/users/user_detail.html:313
#: users/templates/users/user_detail.html:313
#: users/templates/users/user_detail.html:340
#: users/templates/users/user_detail.html:340
#: xpack/plugins/interface/views.py:35
#: xpack/plugins/interface/views.py:35
...
@@ -1492,7 +1497,7 @@ msgstr "查看"
...
@@ -1492,7 +1497,7 @@ msgstr "查看"
#: assets/templates/assets/_asset_user_list.html:75
#: assets/templates/assets/_asset_user_list.html:75
#: assets/templates/assets/admin_user_assets.html:61
#: assets/templates/assets/admin_user_assets.html:61
#: assets/templates/assets/asset_asset_user_list.html:57
#: assets/templates/assets/asset_asset_user_list.html:57
#: assets/templates/assets/asset_detail.html:17
8
#: assets/templates/assets/asset_detail.html:17
6
#: assets/templates/assets/system_user_assets.html:63
#: assets/templates/assets/system_user_assets.html:63
#: assets/templates/assets/system_user_detail.html:151
#: assets/templates/assets/system_user_detail.html:151
msgid "Test"
msgid "Test"
...
@@ -1614,7 +1619,7 @@ msgstr "快速更新"
...
@@ -1614,7 +1619,7 @@ msgstr "快速更新"
#: assets/templates/assets/admin_user_assets.html:58
#: assets/templates/assets/admin_user_assets.html:58
#: assets/templates/assets/asset_asset_user_list.html:54
#: assets/templates/assets/asset_asset_user_list.html:54
#: assets/templates/assets/asset_detail.html:17
5
#: assets/templates/assets/asset_detail.html:17
3
msgid "Test connective"
msgid "Test connective"
msgstr "测试可连接性"
msgstr "测试可连接性"
...
@@ -1631,7 +1636,7 @@ msgid "Select nodes"
...
@@ -1631,7 +1636,7 @@ msgid "Select nodes"
msgstr "选择节点"
msgstr "选择节点"
#: assets/templates/assets/admin_user_detail.html:100
#: assets/templates/assets/admin_user_detail.html:100
#: assets/templates/assets/asset_detail.html:20
4
#: assets/templates/assets/asset_detail.html:20
2
#: assets/templates/assets/asset_list.html:422
#: assets/templates/assets/asset_list.html:422
#: assets/templates/assets/cmd_filter_detail.html:106
#: assets/templates/assets/cmd_filter_detail.html:106
#: assets/templates/assets/system_user_assets.html:97
#: assets/templates/assets/system_user_assets.html:97
...
@@ -1639,7 +1644,7 @@ msgstr "选择节点"
...
@@ -1639,7 +1644,7 @@ msgstr "选择节点"
#: assets/templates/assets/system_user_list.html:139
#: assets/templates/assets/system_user_list.html:139
#: authentication/templates/authentication/_mfa_confirm_modal.html:20
#: authentication/templates/authentication/_mfa_confirm_modal.html:20
#: settings/templates/settings/terminal_setting.html:168
#: settings/templates/settings/terminal_setting.html:168
#: templates/_modal.html:23 terminal/templates/terminal/session_detail.html:1
08
#: templates/_modal.html:23 terminal/templates/terminal/session_detail.html:1
12
#: users/templates/users/user_detail.html:394
#: users/templates/users/user_detail.html:394
#: users/templates/users/user_detail.html:420
#: users/templates/users/user_detail.html:420
#: users/templates/users/user_detail.html:443
#: users/templates/users/user_detail.html:443
...
@@ -1719,8 +1724,8 @@ msgid "Asset users of"
...
@@ -1719,8 +1724,8 @@ msgid "Asset users of"
msgstr "资产用户"
msgstr "资产用户"
#: assets/templates/assets/asset_asset_user_list.html:47
#: assets/templates/assets/asset_asset_user_list.html:47
#: assets/templates/assets/asset_detail.html:14
4
#: assets/templates/assets/asset_detail.html:14
2
#: terminal/templates/terminal/session_detail.html:8
1
#: terminal/templates/terminal/session_detail.html:8
5
#: users/templates/users/user_detail.html:140
#: users/templates/users/user_detail.html:140
#: users/templates/users/user_profile.html:150
#: users/templates/users/user_profile.html:150
#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:128
#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:128
...
@@ -1739,21 +1744,21 @@ msgstr "选择需要修改属性"
...
@@ -1739,21 +1744,21 @@ msgstr "选择需要修改属性"
msgid "Select all"
msgid "Select all"
msgstr "全选"
msgstr "全选"
#: assets/templates/assets/asset_detail.html:9
2
#: assets/templates/assets/asset_detail.html:9
0
msgid "CPU"
msgid "CPU"
msgstr "CPU"
msgstr "CPU"
#: assets/templates/assets/asset_detail.html:
100
#: assets/templates/assets/asset_detail.html:
98
msgid "Disk"
msgid "Disk"
msgstr "硬盘"
msgstr "硬盘"
#: assets/templates/assets/asset_detail.html:12
8
#: assets/templates/assets/asset_detail.html:12
6
#: users/templates/users/user_detail.html:115
#: users/templates/users/user_detail.html:115
#: users/templates/users/user_profile.html:106
#: users/templates/users/user_profile.html:106
msgid "Date joined"
msgid "Date joined"
msgstr "创建日期"
msgstr "创建日期"
#: assets/templates/assets/asset_detail.html:1
50
authentication/models.py:15
#: assets/templates/assets/asset_detail.html:1
48
authentication/models.py:15
#: authentication/templates/authentication/_access_key_modal.html:32
#: authentication/templates/authentication/_access_key_modal.html:32
#: perms/models/base.py:51
#: perms/models/base.py:51
#: perms/templates/perms/asset_permission_create_update.html:55
#: perms/templates/perms/asset_permission_create_update.html:55
...
@@ -1767,11 +1772,11 @@ msgstr "创建日期"
...
@@ -1767,11 +1772,11 @@ msgstr "创建日期"
msgid "Active"
msgid "Active"
msgstr "激活中"
msgstr "激活中"
#: assets/templates/assets/asset_detail.html:16
7
#: assets/templates/assets/asset_detail.html:16
5
msgid "Refresh hardware"
msgid "Refresh hardware"
msgstr "更新硬件信息"
msgstr "更新硬件信息"
#: assets/templates/assets/asset_detail.html:1
70
#: assets/templates/assets/asset_detail.html:1
68
msgid "Refresh"
msgid "Refresh"
msgstr "刷新"
msgstr "刷新"
...
@@ -2984,38 +2989,38 @@ msgid "Task log"
...
@@ -2984,38 +2989,38 @@ msgid "Task log"
msgstr "任务列表"
msgstr "任务列表"
#: ops/templates/ops/command_execution_create.html:90
#: ops/templates/ops/command_execution_create.html:90
#: terminal/templates/terminal/session_detail.html:9
1
#: terminal/templates/terminal/session_detail.html:9
5
#: terminal/templates/terminal/session_detail.html:10
0
#: terminal/templates/terminal/session_detail.html:10
4
msgid "Go"
msgid "Go"
msgstr ""
msgstr ""
#: ops/templates/ops/command_execution_create.html:21
5
#: ops/templates/ops/command_execution_create.html:21
6
msgid "Selected assets"
msgid "Selected assets"
msgstr "已选择资产"
msgstr "已选择资产"
#: ops/templates/ops/command_execution_create.html:21
8
#: ops/templates/ops/command_execution_create.html:21
9
msgid "In total"
msgid "In total"
msgstr "总共"
msgstr "总共"
#: ops/templates/ops/command_execution_create.html:25
4
#: ops/templates/ops/command_execution_create.html:25
6
msgid ""
msgid ""
"Select the left asset, select the running system user, execute command in "
"Select the left asset, select the running system user, execute command in "
"batch"
"batch"
msgstr "选择左侧资产, 选择运行的系统用户,批量执行命令"
msgstr "选择左侧资产, 选择运行的系统用户,批量执行命令"
#: ops/templates/ops/command_execution_create.html:2
75
#: ops/templates/ops/command_execution_create.html:2
99
msgid "Unselected assets"
msgid "Unselected assets"
msgstr "没有选中资产"
msgstr "没有选中资产"
#: ops/templates/ops/command_execution_create.html:
279
#: ops/templates/ops/command_execution_create.html:
303
msgid "No input command"
msgid "No input command"
msgstr "没有输入命令"
msgstr "没有输入命令"
#: ops/templates/ops/command_execution_create.html:
283
#: ops/templates/ops/command_execution_create.html:
307
msgid "No system user was selected"
msgid "No system user was selected"
msgstr "没有选择系统用户"
msgstr "没有选择系统用户"
#: ops/templates/ops/command_execution_create.html:3
28
#: ops/templates/ops/command_execution_create.html:3
17
msgid "Pending"
msgid "Pending"
msgstr "等待"
msgstr "等待"
...
@@ -3394,21 +3399,21 @@ msgstr "连接LDAP成功"
...
@@ -3394,21 +3399,21 @@ msgstr "连接LDAP成功"
msgid "Match {} s users"
msgid "Match {} s users"
msgstr "匹配 {} 个用户"
msgstr "匹配 {} 个用户"
#: settings/api.py:1
63
#: settings/api.py:1
51
msgid "succeed: {} failed: {} total: {}"
msgid "succeed: {} failed: {} total: {}"
msgstr "成功:{} 失败:{} 总数:{}"
msgstr "成功:{} 失败:{} 总数:{}"
#: settings/api.py:1
85 settings/api.py:221
#: settings/api.py:1
73 settings/api.py:209
msgid ""
msgid ""
"Error: Account invalid (Please make sure the information such as Access key "
"Error: Account invalid (Please make sure the information such as Access key "
"or Secret key is correct)"
"or Secret key is correct)"
msgstr "错误:账户无效 (请确保 Access key 或 Secret key 等信息正确)"
msgstr "错误:账户无效 (请确保 Access key 或 Secret key 等信息正确)"
#: settings/api.py:1
91 settings/api.py:227
#: settings/api.py:1
79 settings/api.py:215
msgid "Create succeed"
msgid "Create succeed"
msgstr "创建成功"
msgstr "创建成功"
#: settings/api.py:
209 settings/api.py:247
#: settings/api.py:
197 settings/api.py:235
#: settings/templates/settings/terminal_setting.html:154
#: settings/templates/settings/terminal_setting.html:154
msgid "Delete succeed"
msgid "Delete succeed"
msgstr "删除成功"
msgstr "删除成功"
...
@@ -3923,11 +3928,11 @@ msgstr "删除失败"
...
@@ -3923,11 +3928,11 @@ msgstr "删除失败"
msgid "Are you sure about deleting it?"
msgid "Are you sure about deleting it?"
msgstr "您确定删除吗?"
msgstr "您确定删除吗?"
#: settings/utils.py:9
1
#: settings/utils.py:9
8
msgid "Search no entry matched in ou {}"
msgid "Search no entry matched in ou {}"
msgstr "在ou:{}中没有匹配条目"
msgstr "在ou:{}中没有匹配条目"
#: settings/utils.py:1
46
#: settings/utils.py:1
72
msgid "The user source is not LDAP"
msgid "The user source is not LDAP"
msgstr "用户来源不是LDAP"
msgstr "用户来源不是LDAP"
...
@@ -4404,7 +4409,7 @@ msgstr "参数"
...
@@ -4404,7 +4409,7 @@ msgstr "参数"
msgid "Export command"
msgid "Export command"
msgstr "导出命令"
msgstr "导出命令"
#: terminal/templates/terminal/command_list.html:
191
#: terminal/templates/terminal/command_list.html:
205
msgid "Goto"
msgid "Goto"
msgstr "转到"
msgstr "转到"
...
@@ -4418,19 +4423,19 @@ msgstr "会话详情"
...
@@ -4418,19 +4423,19 @@ msgstr "会话详情"
msgid "Command list"
msgid "Command list"
msgstr "命令记录列表"
msgstr "命令记录列表"
#: terminal/templates/terminal/session_detail.html:6
3
#: terminal/templates/terminal/session_detail.html:6
7
msgid "There is no command about this session"
msgid "There is no command about this session"
msgstr "该会话没有命令记录"
msgstr "该会话没有命令记录"
#: terminal/templates/terminal/session_detail.html:
88
#: terminal/templates/terminal/session_detail.html:
92
msgid "Replay session"
msgid "Replay session"
msgstr "回放会话"
msgstr "回放会话"
#: terminal/templates/terminal/session_detail.html:
97
#: terminal/templates/terminal/session_detail.html:
101
msgid "Monitor session"
msgid "Monitor session"
msgstr "监控"
msgstr "监控"
#: terminal/templates/terminal/session_detail.html:10
5
#: terminal/templates/terminal/session_detail.html:10
9
msgid "Terminate session"
msgid "Terminate session"
msgstr "终止会话"
msgstr "终止会话"
...
...
apps/orgs/serializers.py
View file @
52d09615
import
re
from
rest_framework.serializers
import
ModelSerializer
from
rest_framework.serializers
import
ModelSerializer
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
users.models
import
User
,
UserGroup
from
users.models
import
User
,
UserGroup
from
assets.models
import
Asset
,
Domain
,
AdminUser
,
SystemUser
,
Label
from
assets.models
import
Asset
,
Domain
,
AdminUser
,
SystemUser
,
Label
from
assets.const
import
(
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
,
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
)
from
perms.models
import
AssetPermission
from
perms.models
import
AssetPermission
from
common.serializers
import
AdaptedBulkListSerializer
from
common.serializers
import
AdaptedBulkListSerializer
from
.utils
import
set_current_org
,
get_current_org
from
.utils
import
set_current_org
,
get_current_org
...
@@ -18,6 +22,15 @@ class OrgSerializer(ModelSerializer):
...
@@ -18,6 +22,15 @@ class OrgSerializer(ModelSerializer):
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created_by'
,
'date_created'
]
read_only_fields
=
[
'created_by'
,
'date_created'
]
@staticmethod
def
validate_name
(
name
):
pattern
=
GENERAL_LIMIT_SPECIAL_CHARACTERS_PATTERN
res
=
re
.
match
(
pattern
,
name
)
if
res
is
None
:
msg
=
GENERAL_LIMIT_SPECIAL_CHARACTERS_ERROR_MSG
raise
serializers
.
ValidationError
(
msg
)
return
name
class
OrgReadSerializer
(
ModelSerializer
):
class
OrgReadSerializer
(
ModelSerializer
):
admins
=
serializers
.
SlugRelatedField
(
slug_field
=
'name'
,
many
=
True
,
read_only
=
True
)
admins
=
serializers
.
SlugRelatedField
(
slug_field
=
'name'
,
many
=
True
,
read_only
=
True
)
...
...
config_example.yml
View file @
52d09615
...
@@ -72,13 +72,18 @@ REDIS_PORT: 6379
...
@@ -72,13 +72,18 @@ REDIS_PORT: 6379
# RADIUS_PORT: 1812
# RADIUS_PORT: 1812
# RADIUS_SECRET:
# RADIUS_SECRET:
# LDAP/AD 设置定时同步参数
# LDAP/AD settings
# 定时同步用户
# 启用/禁用
# 启用/禁用
# AUTH_LDAP_SYNC_IS_PERIODIC: True
# AUTH_LDAP_SYNC_IS_PERIODIC: True
# 单位: 时
# 单位: 时
# AUTH_LDAP_SYNC_INTERVAL: 12
# AUTH_LDAP_SYNC_INTERVAL: 12
# Crontab 表达式
# Crontab 表达式
# AUTH_LDAP_SYNC_CRONTAB: * 6 * * *
# AUTH_LDAP_SYNC_CRONTAB: * 6 * * *
#
# LDAP 用户登录时仅允许在用户列表中的用户执行 LDAP Server 认证
# AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS: False
# OTP settings
# OTP settings
# OTP/MFA 配置
# OTP/MFA 配置
...
...
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