From 8ad71b6dd91e7f013499e95e7363cd7328118819 Mon Sep 17 00:00:00 2001 From: xinwen Date: Tue, 16 Jun 2020 18:11:23 +0800 Subject: [PATCH] [Update] Move LOCAL_DYNAMIC_SETTINGS (#4113) --- apps/common/local.py | 33 ++++++++++++++++++++++++++++++++- apps/jumpserver/const.py | 33 +-------------------------------- apps/users/models/user.py | 2 +- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/apps/common/local.py b/apps/common/local.py index 37a2ccb0b..e075d29ff 100644 --- a/apps/common/local.py +++ b/apps/common/local.py @@ -1,9 +1,40 @@ # -*- coding: utf-8 -*- # -from werkzeug.local import Local +from jumpserver.const import DYNAMIC +from werkzeug.local import Local, LocalProxy thread_local = Local() def _find(attr): return getattr(thread_local, attr, None) + + +class _Settings: + pass + + +def get_dynamic_cfg_from_thread_local(): + KEY = 'dynamic_config' + + try: + cfg = getattr(thread_local, KEY) + except AttributeError: + cfg = _Settings() + setattr(thread_local, KEY, cfg) + + return cfg + + +class DynamicDefaultLocalProxy(LocalProxy): + def __getattr__(self, item): + try: + value = super().__getattr__(item) + except AttributeError: + value = getattr(DYNAMIC, item)() + setattr(self, item, value) + + return value + + +LOCAL_DYNAMIC_SETTINGS = DynamicDefaultLocalProxy(get_dynamic_cfg_from_thread_local) diff --git a/apps/jumpserver/const.py b/apps/jumpserver/const.py index 9dad76cd5..c2889870e 100644 --- a/apps/jumpserver/const.py +++ b/apps/jumpserver/const.py @@ -2,12 +2,9 @@ # import os -from werkzeug.local import LocalProxy - from .conf import ConfigManager -from common.local import thread_local -__all__ = ['BASE_DIR', 'PROJECT_DIR', 'VERSION', 'CONFIG', 'DYNAMIC', 'LOCAL_DYNAMIC_SETTINGS'] +__all__ = ['BASE_DIR', 'PROJECT_DIR', 'VERSION', 'CONFIG', 'DYNAMIC'] BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) PROJECT_DIR = os.path.dirname(BASE_DIR) @@ -16,31 +13,3 @@ CONFIG = ConfigManager.load_user_config() DYNAMIC = ConfigManager.get_dynamic_config(CONFIG) -class _Settings: - pass - - -def get_dynamic_cfg_from_thread_local(): - KEY = 'dynamic_config' - - try: - cfg = getattr(thread_local, KEY) - except AttributeError: - cfg = _Settings() - setattr(thread_local, KEY, cfg) - - return cfg - - -class DynamicDefaultLocalProxy(LocalProxy): - def __getattr__(self, item): - try: - value = super().__getattr__(item) - except AttributeError: - value = getattr(DYNAMIC, item)() - setattr(self, item, value) - - return value - - -LOCAL_DYNAMIC_SETTINGS = DynamicDefaultLocalProxy(get_dynamic_cfg_from_thread_local) diff --git a/apps/users/models/user.py b/apps/users/models/user.py index d30141d23..89bfe4254 100644 --- a/apps/users/models/user.py +++ b/apps/users/models/user.py @@ -16,7 +16,7 @@ from django.utils.translation import ugettext_lazy as _ from django.utils import timezone from django.shortcuts import reverse -from jumpserver.const import LOCAL_DYNAMIC_SETTINGS +from common.local import LOCAL_DYNAMIC_SETTINGS from orgs.utils import current_org from common.utils import signer, date_expired_default, get_logger, lazyproperty from common import fields