Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
79eb8382
J
jumpserver
项目概览
gjl2004yn
/
jumpserver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jumpserver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
79eb8382
编写于
4月 29, 2020
作者:
E
Eric
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Update] setting fields automatically generated by serializer
上级
82710294
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
42 deletion
+9
-42
apps/settings/api.py
apps/settings/api.py
+4
-37
apps/settings/serializers/settings.py
apps/settings/serializers/settings.py
+5
-5
未找到文件。
apps/settings/api.py
浏览文件 @
79eb8382
...
...
@@ -9,6 +9,7 @@ from rest_framework.views import Response, APIView
from
django.conf
import
settings
from
django.core.mail
import
send_mail
,
get_connection
from
django.utils.translation
import
ugettext_lazy
as
_
from
rest_framework
import
serializers
from
.utils
import
(
LDAPServerUtil
,
LDAPCacheUtil
,
LDAPImportUtil
,
LDAPSyncUtil
,
...
...
@@ -276,45 +277,11 @@ class PublicSettingApi(generics.RetrieveAPIView):
class
SettingsApi
(
generics
.
RetrieveUpdateAPIView
):
serializer_class
=
SettingsSerializer
BASIC_CATEGORY
=
[
'SITE_URL'
,
'USER_GUIDE_URL'
,
'EMAIL_SUBJECT_PREFIX'
]
EMAIL_CATEGORY
=
[
'EMAIL_HOST'
,
'EMAIL_PORT'
,
'EMAIL_HOST_USER'
,
'EMAIL_HOST_PASSWORD'
,
'EMAIL_FROM'
,
'EMAIL_RECIPIENT'
,
'EMAIL_USE_SSL'
,
'EMAIL_USE_TLS'
]
EMAIL_CONTENT_CATEGORY
=
[
'EMAIL_CUSTOM_USER_CREATED_SUBJECT'
,
'EMAIL_CUSTOM_USER_CREATED_HONORIFIC'
,
'EMAIL_CUSTOM_USER_CREATED_BODY'
,
'EMAIL_CUSTOM_USER_CREATED_SIGNATURE'
,
]
LDAP_CATEGORY
=
[
'AUTH_LDAP_SERVER_URI'
,
'AUTH_LDAP_BIND_DN'
,
'AUTH_LDAP_BIND_PASSWORD'
,
'AUTH_LDAP_SEARCH_OU'
,
'AUTH_LDAP_SEARCH_FILTER'
,
'AUTH_LDAP_USER_ATTR_MAP'
,
'AUTH_LDAP'
]
TERMINAL_CATEGORY
=
[
'TERMINAL_PASSWORD_AUTH'
,
'TERMINAL_PUBLIC_KEY_AUTH'
,
'TERMINAL_HEARTBEAT_INTERVAL'
,
'TERMINAL_ASSET_LIST_SORT_BY'
,
'TERMINAL_ASSET_LIST_PAGE_SIZE'
,
'TERMINAL_SESSION_KEEP_DURATION'
,
'TERMINAL_TELNET_REGEX'
]
SECURITY_CATEGORY
=
[
'SECURITY_MFA_AUTH'
,
'SECURITY_COMMAND_EXECUTION'
,
'SECURITY_SERVICE_ACCOUNT_REGISTRATION'
,
'SECURITY_LOGIN_LIMIT_COUNT'
,
'SECURITY_LOGIN_LIMIT_TIME'
,
'SECURITY_MAX_IDLE_TIME'
,
'SECURITY_PASSWORD_EXPIRATION_TIME'
,
'SECURITY_PASSWORD_MIN_LENGTH'
,
'SECURITY_PASSWORD_UPPER_CASE'
,
'SECURITY_PASSWORD_LOWER_CASE'
,
'SECURITY_PASSWORD_NUMBER'
,
'SECURITY_PASSWORD_SPECIAL_CHAR'
]
SETTING_CATEGORIES
=
{
"basic"
:
BASIC_CATEGORY
,
'email'
:
EMAIL_CATEGORY
,
'email_content'
:
EMAIL_CONTENT_CATEGORY
,
'ldap'
:
LDAP_CATEGORY
,
'terminal'
:
TERMINAL_CATEGORY
,
'security'
:
SECURITY_CATEGORY
}
def
get_object
(
self
):
instance
=
{
category
_name
:
self
.
_get_setting_fields_obj
(
category_fields
)
for
category
_name
,
category_fields
in
self
.
SETTING_CATEGORIES
.
items
()}
instance
=
{
category
:
self
.
_get_setting_fields_obj
(
list
(
category_serializer
.
get_fields
())
)
for
category
,
category_serializer
in
self
.
serializer_class
().
get_fields
().
items
()
if
isinstance
(
category_serializer
,
serializers
.
Serializer
)}
return
ObjectDict
(
instance
)
def
perform_update
(
self
,
serializer
):
...
...
apps/settings/serializers/settings.py
浏览文件 @
79eb8382
...
...
@@ -20,7 +20,7 @@ class EmailSettingSerializer(serializers.Serializer):
EMAIL_HOST
=
serializers
.
CharField
(
max_length
=
1024
,
required
=
True
)
EMAIL_PORT
=
serializers
.
CharField
(
max_length
=
5
,
required
=
True
)
EMAIL_HOST_USER
=
serializers
.
CharField
(
max_length
=
128
,
required
=
True
)
EMAIL_HOST_PASSWORD
=
serializers
.
CharField
(
max_length
=
1024
,
required
=
False
,
write_only
=
True
)
EMAIL_HOST_PASSWORD
=
serializers
.
CharField
(
max_length
=
1024
,
write_only
=
True
,
required
=
False
,
)
EMAIL_FROM
=
serializers
.
CharField
(
max_length
=
128
,
allow_blank
=
True
,
required
=
False
)
EMAIL_RECIPIENT
=
serializers
.
CharField
(
max_length
=
128
,
allow_blank
=
True
,
required
=
False
)
EMAIL_USE_SSL
=
serializers
.
BooleanField
(
required
=
False
)
...
...
@@ -39,7 +39,7 @@ class LdapSettingSerializer(serializers.Serializer):
AUTH_LDAP_SERVER_URI
=
serializers
.
CharField
(
required
=
True
)
AUTH_LDAP_BIND_DN
=
serializers
.
CharField
(
required
=
False
)
AUTH_LDAP_BIND_PASSWORD
=
serializers
.
CharField
(
max_length
=
1024
,
write_only
=
True
)
AUTH_LDAP_BIND_PASSWORD
=
serializers
.
CharField
(
max_length
=
1024
,
write_only
=
True
,
required
=
False
)
AUTH_LDAP_SEARCH_OU
=
serializers
.
CharField
(
max_length
=
1024
,
allow_blank
=
True
,
required
=
False
)
AUTH_LDAP_SEARCH_FILTER
=
serializers
.
CharField
(
max_length
=
1024
,
required
=
True
)
AUTH_LDAP_USER_ATTR_MAP
=
serializers
.
CharField
(
max_length
=
1024
,
required
=
True
)
...
...
@@ -63,10 +63,10 @@ class TerminalSettingSerializer(serializers.Serializer):
TERMINAL_PASSWORD_AUTH
=
serializers
.
BooleanField
(
required
=
False
)
TERMINAL_PUBLIC_KEY_AUTH
=
serializers
.
BooleanField
(
required
=
False
)
TERMINAL_HEARTBEAT_INTERVAL
=
serializers
.
IntegerField
(
min_value
=
5
,
max_value
=
99999
,
required
=
True
)
TERMINAL_ASSET_LIST_SORT_BY
=
serializers
.
ChoiceField
(
SORT_BY_CHOICES
)
TERMINAL_ASSET_LIST_PAGE_SIZE
=
serializers
.
ChoiceField
(
PAGE_SIZE_CHOICES
)
TERMINAL_ASSET_LIST_SORT_BY
=
serializers
.
ChoiceField
(
SORT_BY_CHOICES
,
required
=
False
)
TERMINAL_ASSET_LIST_PAGE_SIZE
=
serializers
.
ChoiceField
(
PAGE_SIZE_CHOICES
,
required
=
False
)
TERMINAL_SESSION_KEEP_DURATION
=
serializers
.
IntegerField
(
min_value
=
1
,
max_value
=
99999
,
required
=
True
)
TERMINAL_TELNET_REGEX
=
serializers
.
CharField
(
required
=
False
,
allow_blank
=
Tru
e
)
TERMINAL_TELNET_REGEX
=
serializers
.
CharField
(
allow_blank
=
True
,
required
=
Fals
e
)
class
SecuritySettingSerializer
(
serializers
.
Serializer
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录