diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 753ffb3d2..28ac12456 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -273,6 +273,19 @@ class Config(dict): if default_value is None: return v tp = type(default_value) + # 对bool特殊处理 + if tp is bool and isinstance(v, str): + if v in ("true", "True", "1"): + return True + else: + return False + if tp in [list, dict] and isinstance(v, str): + try: + v = json.loads(v) + return v + except json.JSONDecodeError: + return v + try: v = tp(v) except Exception: @@ -289,14 +302,10 @@ class Config(dict): except KeyError: value = None if value is not None: - return self.convert_type(item, value) + return value # 其次从环境变量来 value = os.environ.get(item, None) if value is not None: - if value.lower() == 'false': - value = False - elif value.lower() == 'true': - value = True return self.convert_type(item, value) return self.defaults.get(item) @@ -362,6 +371,7 @@ defaults = { 'HTTP_LISTEN_PORT': 8080, 'LOGIN_LOG_KEEP_DAYS': 90, 'ASSETS_PERM_CACHE_TIME': 3600, + } diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 57a3c0148..86988e599 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -371,6 +371,8 @@ REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': ( 'rest_framework.parsers.JSONParser', 'rest_framework.parsers.FormParser', + 'rest_framework.parsers.MultiPartParser', + 'rest_framework.parsers.FileUploadParser', 'common.parsers.JMSCSVParser' ), 'DEFAULT_AUTHENTICATION_CLASSES': (