fix: monkey-patch DictObject.__getattr__ for get_module_dbname on all instances
This commit is contained in:
parent
9a0fe11ed2
commit
358fca700c
41
app/pccs.py
41
app/pccs.py
@ -5,32 +5,27 @@ pccs — 算力中心集群系统 (Pooled Computing Cluster System)
|
|||||||
import os, sys
|
import os, sys
|
||||||
|
|
||||||
from ahserver.webapp import webapp
|
from ahserver.webapp import webapp
|
||||||
from ahserver.serverenv import ServerEnv
|
|
||||||
|
|
||||||
from appbase.init import load_appbase
|
|
||||||
from rbac.init import load_rbac
|
|
||||||
|
|
||||||
WORKDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
||||||
|
|
||||||
|
|
||||||
def get_module_dbname(m):
|
|
||||||
return 'pccs'
|
|
||||||
|
|
||||||
|
|
||||||
def password_encode(s):
|
|
||||||
if s is None:
|
|
||||||
return ''
|
|
||||||
from ahserver.globalEnv import password_encode as _orig
|
|
||||||
return _orig(s)
|
|
||||||
|
|
||||||
|
|
||||||
def init():
|
def init():
|
||||||
env = ServerEnv()
|
# 注入全局默认 module_dbname — ServerEnv DictObject 每个实例不同,
|
||||||
env.get_module_dbname = get_module_dbname
|
# 必须通过 monkey-patching DictObject.__getattr__ 来让所有实例有默认值
|
||||||
env.password_encode = password_encode
|
from ahserver.serverenv import ServerEnv
|
||||||
# monkey-patch ServerEnv class so ALL instances get these methods
|
from appPublic.dictObject import DictObject
|
||||||
ServerEnv.get_module_dbname = staticmethod(get_module_dbname)
|
|
||||||
ServerEnv.password_encode = staticmethod(password_encode)
|
_orig_getattr = DictObject.__getattr__
|
||||||
|
|
||||||
|
def _patched_getattr(self, key):
|
||||||
|
if key == 'get_module_dbname':
|
||||||
|
return lambda m: 'pccs'
|
||||||
|
if key == 'password_encode':
|
||||||
|
return lambda s: s
|
||||||
|
return _orig_getattr(self, key)
|
||||||
|
|
||||||
|
DictObject.__getattr__ = _patched_getattr
|
||||||
|
|
||||||
|
from appbase.init import load_appbase
|
||||||
|
from rbac.init import load_rbac
|
||||||
load_appbase()
|
load_appbase()
|
||||||
load_rbac()
|
load_rbac()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user