44 |
44 |
loader_class = import_class(loader)
|
45 |
45 |
yield loader_class()
|
46 |
46 |
|
47 |
|
def load_tenant_settings(self, wrapped, tenant, tenant_settings,
|
48 |
|
last_time):
|
|
47 |
def load_tenant_settings(self, tenant, tenant_settings, last_time):
|
49 |
48 |
'''Load tenant settings from loaders into tenant_settings object, only
|
50 |
49 |
if any of the loaders say it is more recent than last update time'''
|
51 |
50 |
update_time = time.time()
|
... | ... | |
67 |
66 |
return tenant_settings, update_time
|
68 |
67 |
return tenant_settings, last_time
|
69 |
68 |
|
70 |
|
def get_tenant_settings(self, wrapped, tenant):
|
|
69 |
def get_tenant_settings(self, tenant):
|
71 |
70 |
'''Get last loaded settings for tenant, try to update it by loading
|
72 |
71 |
settings again is last loading time is less recent thant settings
|
73 |
72 |
data store. Compare with last modification time is done in the
|
... | ... | |
76 |
75 |
tenant_settings, last_time = self.tenants_settings.get(
|
77 |
76 |
tenant.domain_url, (None, None))
|
78 |
77 |
if tenant_settings is None:
|
79 |
|
tenant_settings = UserSettingsHolder(wrapped)
|
80 |
|
tenant_settings, last_time = self.load_tenant_settings(
|
81 |
|
wrapped, tenant, tenant_settings, last_time)
|
|
78 |
tenant_settings = UserSettingsHolder(self.default_settings)
|
|
79 |
tenant_settings, last_time = self.load_tenant_settings(tenant, tenant_settings, last_time)
|
82 |
80 |
self.tenants_settings[tenant.domain_url] = tenant_settings, last_time
|
83 |
81 |
return tenant_settings
|
84 |
82 |
|
... | ... | |
90 |
88 |
tenant = connection.get_tenant()
|
91 |
89 |
if not hasattr(tenant, 'domain_url'):
|
92 |
90 |
return self.default_settings
|
93 |
|
return self.get_tenant_settings(self.default_settings, tenant)
|
|
91 |
return self.get_tenant_settings(tenant)
|
94 |
92 |
finally:
|
95 |
93 |
self.local.in_get_wrapped = False
|
96 |
94 |
|
97 |
|
-
|