1 |
1 |
import os
|
2 |
2 |
|
3 |
|
from django.core.exceptions import ImproperlyConfigured
|
|
3 |
# Debian defaults
|
|
4 |
DEBUG = False
|
4 |
5 |
|
5 |
6 |
PROJECT_NAME = 'authentic2-multitenant'
|
6 |
7 |
|
7 |
|
try:
|
8 |
|
import hobo
|
9 |
|
except ImportError:
|
10 |
|
raise ImproperlyConfigured('hobo MUST be installed for the multitenant mode to work')
|
11 |
|
|
12 |
|
VAR_DIR = os.path.join('/var/lib', PROJECT_NAME)
|
13 |
|
ETC_DIR = os.path.join('/etc', PROJECT_NAME)
|
14 |
|
|
15 |
|
STATIC_ROOT = os.path.join(VAR_DIR, 'collected-static')
|
16 |
|
STATICFILES_DIRS = (os.path.join(VAR_DIR, 'static'),) + STATICFILES_DIRS
|
17 |
|
TEMPLATE_DIRS = (os.path.join(VAR_DIR, 'templates'),) + TEMPLATE_DIRS
|
18 |
|
LOCALE_PATHS = (os.path.join(VAR_DIR, 'locale'),) + LOCALE_PATHS
|
19 |
|
|
20 |
|
# SECURITY WARNING: don't run with debug turned on in production!
|
21 |
|
DEBUG = True
|
22 |
|
TEMPLATE_DEBUG = False
|
23 |
|
|
24 |
|
TENANT_MODEL = 'multitenant.Tenant'
|
25 |
|
TENANT_BASE = os.path.join(VAR_DIR, 'tenants')
|
26 |
|
TENANT_TEMPLATE_DIRS = (TENANT_BASE,)
|
27 |
|
|
28 |
|
SHARED_APPS = (
|
29 |
|
'hobo.multitenant',
|
30 |
|
'django.contrib.staticfiles',
|
31 |
|
'django.contrib.auth',
|
32 |
|
'django.contrib.contenttypes',
|
33 |
|
'django.contrib.sessions',
|
34 |
|
'django.contrib.messages',
|
35 |
|
)
|
36 |
|
|
37 |
|
TENANT_APPS = INSTALLED_APPS
|
38 |
|
|
39 |
|
INSTALLED_APPS = ('hobo.multitenant', 'hobo.agent.authentic2') + INSTALLED_APPS
|
40 |
|
|
41 |
|
TEMPLATE_LOADERS = ('hobo.multitenant.template_loader.FilesystemLoader',) + TEMPLATE_LOADERS
|
42 |
|
|
43 |
|
TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.request',) + TEMPLATE_CONTEXT_PROCESSORS
|
44 |
|
|
45 |
|
MIDDLEWARE_CLASSES = (
|
46 |
|
'authentic2.middleware.XForwardedForMiddleware',
|
47 |
|
'hobo.multitenant.middleware.TenantMiddleware',
|
48 |
|
'hobo.multitenant.middleware.TenantSettingsMiddleware',
|
49 |
|
) + MIDDLEWARE_CLASSES
|
50 |
|
|
51 |
|
TENANT_SETTINGS_LOADERS = (
|
52 |
|
'hobo.multitenant.settings_loaders.TemplateVars',
|
53 |
|
'hobo.multitenant.settings_loaders.Authentic',
|
54 |
|
)
|
55 |
|
|
56 |
|
DEFAULT_FILE_STORAGE = 'hobo.multitenant.storage.TenantFileSystemStorage'
|
57 |
|
|
58 |
|
DATABASES = {
|
59 |
|
'default': {
|
60 |
|
'ENGINE': 'tenant_schemas.postgresql_backend',
|
61 |
|
'NAME': PROJECT_NAME.replace('-', '_')
|
62 |
|
}
|
63 |
|
}
|
64 |
|
|
65 |
|
DATABASE_ROUTERS = (
|
66 |
|
'tenant_schemas.routers.TenantSyncRouter',
|
67 |
|
)
|
|
8 |
#
|
|
9 |
# hobotization (multitenant)
|
|
10 |
#
|
|
11 |
execfile('/usr/lib/hobo/debian_config_common.py')
|
68 |
12 |
|
69 |
13 |
LOGGING = {
|
70 |
14 |
'version': 1,
|
... | ... | |
110 |
54 |
},
|
111 |
55 |
}
|
112 |
56 |
|
113 |
|
if os.path.exists(os.path.join(ETC_DIR, 'config.py')):
|
114 |
|
execfile(os.path.join(ETC_DIR, 'config.py'))
|
|
57 |
CONFIG_FILE='/etc/%s/config.py' % PROJECT_NAME
|
|
58 |
if os.path.exists(CONFIG_FILE):
|
|
59 |
execfile(CONFIG_FILE)
|
115 |
|
-
|