Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / settings.py @ 56bbece7

History | View | Annotate | Download (8.9 kB)

1 92defad4 Sofia Papagiannaki
from django.conf import settings
2 a2110608 Olga Brani
from synnefo_branding import settings as synnefo_settings
3 e3ff6830 Georgios D. Tsoukalas
from synnefo.lib import parse_base_url
4 81e604c5 Ilias Tsitsimpis
from astakos.api.services import astakos_services as vanilla_astakos_services
5 484a79a1 Georgios D. Tsoukalas
from synnefo.util.keypath import get_path
6 6c7af65c Georgios D. Tsoukalas
from synnefo.lib import join_urls
7 d861a967 Georgios D. Tsoukalas
from synnefo.lib.services import fill_endpoints
8 d861a967 Georgios D. Tsoukalas
9 d861a967 Georgios D. Tsoukalas
from copy import deepcopy
10 484a79a1 Georgios D. Tsoukalas
11 e3ff6830 Georgios D. Tsoukalas
12 e3ff6830 Georgios D. Tsoukalas
BASE_URL = getattr(settings, 'ASTAKOS_BASE_URL',
13 e3ff6830 Georgios D. Tsoukalas
                   'https://accounts.example.synnefo.org')
14 e3ff6830 Georgios D. Tsoukalas
15 e3ff6830 Georgios D. Tsoukalas
16 e3ff6830 Georgios D. Tsoukalas
BASE_HOST, BASE_PATH = parse_base_url(BASE_URL)
17 e3ff6830 Georgios D. Tsoukalas
18 d861a967 Georgios D. Tsoukalas
astakos_services = deepcopy(vanilla_astakos_services)
19 d861a967 Georgios D. Tsoukalas
fill_endpoints(astakos_services, BASE_URL)
20 484a79a1 Georgios D. Tsoukalas
ACCOUNTS_PREFIX = get_path(astakos_services, 'astakos_account.prefix')
21 484a79a1 Georgios D. Tsoukalas
VIEWS_PREFIX = get_path(astakos_services, 'astakos_ui.prefix')
22 923e6582 Georgios D. Tsoukalas
KEYSTONE_PREFIX = get_path(astakos_services, 'astakos_identity.prefix')
23 bdb325a1 Georgios D. Tsoukalas
WEBLOGIN_PREFIX = get_path(astakos_services, 'astakos_weblogin.prefix')
24 c8a38c0e Christos Stavrakakis
ADMIN_PREFIX = get_path(astakos_services, 'astakos_admin.prefix')
25 92defad4 Sofia Papagiannaki
26 92defad4 Sofia Papagiannaki
# Set the expiration time of newly created auth tokens
27 92defad4 Sofia Papagiannaki
# to be this many hours after their creation time.
28 92defad4 Sofia Papagiannaki
AUTH_TOKEN_DURATION = getattr(settings, 'ASTAKOS_AUTH_TOKEN_DURATION', 30 * 24)
29 92defad4 Sofia Papagiannaki
30 92defad4 Sofia Papagiannaki
DEFAULT_USER_LEVEL = getattr(settings, 'ASTAKOS_DEFAULT_USER_LEVEL', 4)
31 92defad4 Sofia Papagiannaki
32 92defad4 Sofia Papagiannaki
INVITATIONS_PER_LEVEL = getattr(settings, 'ASTAKOS_INVITATIONS_PER_LEVEL', {
33 5ce3ce4f Sofia Papagiannaki
    0: 100,
34 5ce3ce4f Sofia Papagiannaki
    1: 2,
35 5ce3ce4f Sofia Papagiannaki
    2: 0,
36 5ce3ce4f Sofia Papagiannaki
    3: 0,
37 5ce3ce4f Sofia Papagiannaki
    4: 0
38 92defad4 Sofia Papagiannaki
})
39 92defad4 Sofia Papagiannaki
40 190a2743 Giorgos Korfiatis
ADMINS = tuple(getattr(settings, 'ADMINS', ()))
41 190a2743 Giorgos Korfiatis
MANAGERS = tuple(getattr(settings, 'MANAGERS', ()))
42 190a2743 Giorgos Korfiatis
HELPDESK = tuple(getattr(settings, 'HELPDESK', ()))
43 92defad4 Sofia Papagiannaki
44 31bc3a62 Kostas Papadimitriou
CONTACT_EMAIL = settings.CONTACT_EMAIL
45 31bc3a62 Kostas Papadimitriou
SERVER_EMAIL = settings.SERVER_EMAIL
46 8998f09a Sofia Papagiannaki
SECRET_KEY = settings.SECRET_KEY
47 8998f09a Sofia Papagiannaki
SESSION_ENGINE = settings.SESSION_ENGINE
48 a3eb3a95 Giorgos Korfiatis
49 92defad4 Sofia Papagiannaki
# Identity Management enabled modules
50 55c99c1c Sofia Papagiannaki
# Supported modules are: 'local', 'twitter' and 'shibboleth'
51 55c99c1c Sofia Papagiannaki
IM_MODULES = getattr(settings, 'ASTAKOS_IM_MODULES', ['local'])
52 92defad4 Sofia Papagiannaki
53 92defad4 Sofia Papagiannaki
# Force user profile verification
54 0a7a4104 Kostas Papadimitriou
FORCE_PROFILE_UPDATE = getattr(settings, 'ASTAKOS_FORCE_PROFILE_UPDATE', False)
55 92defad4 Sofia Papagiannaki
56 92defad4 Sofia Papagiannaki
#Enable invitations
57 55c99c1c Sofia Papagiannaki
INVITATIONS_ENABLED = getattr(settings, 'ASTAKOS_INVITATIONS_ENABLED', False)
58 92defad4 Sofia Papagiannaki
59 92defad4 Sofia Papagiannaki
COOKIE_NAME = getattr(settings, 'ASTAKOS_COOKIE_NAME', '_pithos2_a')
60 92defad4 Sofia Papagiannaki
COOKIE_DOMAIN = getattr(settings, 'ASTAKOS_COOKIE_DOMAIN', None)
61 ca34523e Antony Chazapis
COOKIE_SECURE = getattr(settings, 'ASTAKOS_COOKIE_SECURE', True)
62 92defad4 Sofia Papagiannaki
63 94459980 Kostas Papadimitriou
IM_STATIC_URL = getattr(settings, 'ASTAKOS_IM_STATIC_URL', '/static/im/')
64 92defad4 Sofia Papagiannaki
65 9d20fe23 Kostas Papadimitriou
# If set to False and invitations not enabled newly created user
66 9d20fe23 Kostas Papadimitriou
# will be automatically accepted
67 1463659a Sofia Papagiannaki
MODERATION_ENABLED = getattr(settings, 'ASTAKOS_MODERATION_ENABLED', True)
68 1463659a Sofia Papagiannaki
69 374611bc Sofia Papagiannaki
# Set service name
70 a2110608 Olga Brani
SITENAME = getattr(settings, 'ASTAKOS_SITENAME', synnefo_settings.SERVICE_NAME)
71 1ae97c83 Sofia Papagiannaki
72 db7fecd9 Sofia Papagiannaki
# Set recaptcha keys
73 db7fecd9 Sofia Papagiannaki
RECAPTCHA_PUBLIC_KEY = getattr(settings, 'ASTAKOS_RECAPTCHA_PUBLIC_KEY', '')
74 db7fecd9 Sofia Papagiannaki
RECAPTCHA_PRIVATE_KEY = getattr(settings, 'ASTAKOS_RECAPTCHA_PRIVATE_KEY', '')
75 5ce3ce4f Sofia Papagiannaki
RECAPTCHA_OPTIONS = getattr(settings, 'ASTAKOS_RECAPTCHA_OPTIONS',
76 8fb8d0cf Giorgos Korfiatis
                            {'theme': 'custom',
77 8fb8d0cf Giorgos Korfiatis
                             'custom_theme_widget': 'okeanos_recaptcha'})
78 989b28f3 Kostas Papadimitriou
RECAPTCHA_USE_SSL = getattr(settings, 'ASTAKOS_RECAPTCHA_USE_SSL', True)
79 55c99c1c Sofia Papagiannaki
RECAPTCHA_ENABLED = getattr(settings, 'ASTAKOS_RECAPTCHA_ENABLED', False)
80 ee1de5e9 Kostas Papadimitriou
81 3a9f4931 Sofia Papagiannaki
# Set where the user should be redirected after logout
82 ebd369d0 Sofia Papagiannaki
LOGOUT_NEXT = getattr(settings, 'ASTAKOS_LOGOUT_NEXT', '')
83 ebd369d0 Sofia Papagiannaki
84 ebd369d0 Sofia Papagiannaki
# Set user email patterns that are automatically activated
85 5ce3ce4f Sofia Papagiannaki
RE_USER_EMAIL_PATTERNS = getattr(
86 5ce3ce4f Sofia Papagiannaki
    settings, 'ASTAKOS_RE_USER_EMAIL_PATTERNS', [])
87 25d9d4d0 Sofia Papagiannaki
88 76776df1 Kostas Papadimitriou
# Messages to display on login page header
89 8fb8d0cf Giorgos Korfiatis
# e.g. {'warning':
90 8fb8d0cf Giorgos Korfiatis
#       'This warning message will be displayed on the top of login page'}
91 4f78c22c Sofia Papagiannaki
LOGIN_MESSAGES = getattr(settings, 'ASTAKOS_LOGIN_MESSAGES', [])
92 25d9d4d0 Sofia Papagiannaki
93 ad956265 Kostas Papadimitriou
# Messages to display on login page header
94 8fb8d0cf Giorgos Korfiatis
# e.g. {'warning':
95 8fb8d0cf Giorgos Korfiatis
#       'This warning message will be displayed on the top of signup page'}
96 4f78c22c Sofia Papagiannaki
SIGNUP_MESSAGES = getattr(settings, 'ASTAKOS_SIGNUP_MESSAGES', [])
97 ad956265 Kostas Papadimitriou
98 ad956265 Kostas Papadimitriou
# Messages to display on login page header
99 8fb8d0cf Giorgos Korfiatis
# e.g. {'warning':
100 8fb8d0cf Giorgos Korfiatis
#       'This warning message will be displayed on the top of profile page'}
101 4f78c22c Sofia Papagiannaki
PROFILE_MESSAGES = getattr(settings, 'ASTAKOS_PROFILE_MESSAGES', [])
102 ad956265 Kostas Papadimitriou
103 ad956265 Kostas Papadimitriou
# Messages to display on all pages
104 8fb8d0cf Giorgos Korfiatis
# e.g. {'warning':
105 8fb8d0cf Giorgos Korfiatis
#       'This warning message will be displayed on the top of every page'}
106 4f78c22c Sofia Papagiannaki
GLOBAL_MESSAGES = getattr(settings, 'ASTAKOS_GLOBAL_MESSAGES', [])
107 ad956265 Kostas Papadimitriou
108 76776df1 Kostas Papadimitriou
# messages to display as extra actions in account forms
109 9d889386 Olga Brani
# e.g. {'https://www.myhomepage.com': 'Back to <service_name>'}
110 76776df1 Kostas Papadimitriou
PROFILE_EXTRA_LINKS = getattr(settings, 'ASTAKOS_PROFILE_EXTRA_LINKS', {})
111 76776df1 Kostas Papadimitriou
112 8fb8d0cf Giorgos Korfiatis
# The number of unsuccessful login requests per minute allowed
113 8fb8d0cf Giorgos Korfiatis
# for a specific user
114 5ce3ce4f Sofia Papagiannaki
RATELIMIT_RETRIES_ALLOWED = getattr(
115 5ce3ce4f Sofia Papagiannaki
    settings, 'ASTAKOS_RATELIMIT_RETRIES_ALLOWED', 3)
116 672d445a Sofia Papagiannaki
117 e2447828 Sofia Papagiannaki
# If False the email change mechanism is disabled
118 e2447828 Sofia Papagiannaki
EMAILCHANGE_ENABLED = getattr(settings, 'ASTAKOS_EMAILCHANGE_ENABLED', False)
119 e2447828 Sofia Papagiannaki
120 e2447828 Sofia Papagiannaki
# Set the expiration time (in days) of email change requests
121 5ce3ce4f Sofia Papagiannaki
EMAILCHANGE_ACTIVATION_DAYS = getattr(
122 5ce3ce4f Sofia Papagiannaki
    settings, 'ASTAKOS_EMAILCHANGE_ACTIVATION_DAYS', 10)
123 111f3da6 Sofia Papagiannaki
124 c9e378c7 Sofia Papagiannaki
# Set the astakos main functions logging severity (None to disable)
125 111f3da6 Sofia Papagiannaki
from logging import INFO
126 ad956265 Kostas Papadimitriou
LOGGING_LEVEL = getattr(settings, 'ASTAKOS_LOGGING_LEVEL', INFO)
127 fc1e2f02 Sofia Papagiannaki
128 d220292f Sofia Papagiannaki
# Set how many objects should be displayed per page
129 3f3dc4b7 Olga Brani
PAGINATE_BY = getattr(settings, 'ASTAKOS_PAGINATE_BY', 50)
130 f46c95c4 Sofia Papagiannaki
131 5a3921a1 Sofia Papagiannaki
# Set how many objects should be displayed per page in show all projects page
132 3f3dc4b7 Olga Brani
PAGINATE_BY_ALL = getattr(settings, 'ASTAKOS_PAGINATE_BY_ALL', 50)
133 59728d4e Olga Brani
134 f46c95c4 Sofia Papagiannaki
# Enforce token renewal on password change/reset
135 f46c95c4 Sofia Papagiannaki
NEWPASSWD_INVALIDATE_TOKEN = getattr(
136 cd1e1513 root
    settings, 'ASTAKOS_NEWPASSWD_INVALIDATE_TOKEN', True)
137 3cbd5e47 Olga Brani
138 80a30d20 Kostas Papadimitriou
# Interval at which to update the user's available quota in astakos usage
139 80a30d20 Kostas Papadimitriou
# profile view
140 80a30d20 Kostas Papadimitriou
USAGE_UPDATE_INTERVAL = getattr(settings, 'ASTAKOS_USAGE_UPDATE_INTERVAL',
141 80a30d20 Kostas Papadimitriou
                                5000)
142 3cbd5e47 Olga Brani
143 ef20ea07 Sofia Papagiannaki
# Permit local account migration
144 8fb8d0cf Giorgos Korfiatis
ENABLE_LOCAL_ACCOUNT_MIGRATION = getattr(
145 8fb8d0cf Giorgos Korfiatis
    settings, 'ASTAKOS_ENABLE_LOCAL_ACCOUNT_MIGRATION', True)
146 1d59653f Kostas Papadimitriou
147 6a80a0ae Kostas Papadimitriou
# Migrate eppn identifiers to remote id
148 6a80a0ae Kostas Papadimitriou
SHIBBOLETH_MIGRATE_EPPN = getattr(settings, 'ASTAKOS_SHIBBOLETH_MIGRATE_EPPN',
149 6a80a0ae Kostas Papadimitriou
                                  False)
150 6a80a0ae Kostas Papadimitriou
151 1d59653f Kostas Papadimitriou
# Strict shibboleth usage
152 1d59653f Kostas Papadimitriou
SHIBBOLETH_REQUIRE_NAME_INFO = getattr(settings,
153 1d59653f Kostas Papadimitriou
                                       'ASTAKOS_SHIBBOLETH_REQUIRE_NAME_INFO',
154 1d59653f Kostas Papadimitriou
                                       False)
155 272cf735 Sofia Papagiannaki
156 4991129c Kostas Papadimitriou
default_activation_redirect_url = join_urls('/', BASE_PATH, VIEWS_PREFIX,
157 4991129c Kostas Papadimitriou
                                            "landing")
158 484a79a1 Georgios D. Tsoukalas
ACTIVATION_REDIRECT_URL = getattr(settings, 'ASTAKOS_ACTIVATION_REDIRECT_URL',
159 4991129c Kostas Papadimitriou
                                  default_activation_redirect_url)
160 8e1a5af5 Georgios D. Tsoukalas
161 469d0997 Georgios D. Tsoukalas
# If true, this enables a ui compatibility layer for the introduction of UUIDs
162 8fb8d0cf Giorgos Korfiatis
# in identity management. WARNING: Setting to True will break your installation
163 469d0997 Georgios D. Tsoukalas
TRANSLATE_UUIDS = getattr(settings, 'ASTAKOS_TRANSLATE_UUIDS', False)
164 469d0997 Georgios D. Tsoukalas
165 8e1a5af5 Georgios D. Tsoukalas
# Users that can approve or deny project applications from the web.
166 8e1a5af5 Georgios D. Tsoukalas
PROJECT_ADMINS = getattr(settings, 'ASTAKOS_PROJECT_ADMINS', set())
167 5a3921a1 Sofia Papagiannaki
168 5a3921a1 Sofia Papagiannaki
# OAuth2 Twitter credentials.
169 5a3921a1 Sofia Papagiannaki
TWITTER_TOKEN = getattr(settings, 'ASTAKOS_TWITTER_TOKEN', '')
170 5a3921a1 Sofia Papagiannaki
TWITTER_SECRET = getattr(settings, 'ASTAKOS_TWITTER_SECRET', '')
171 8fb8d0cf Giorgos Korfiatis
TWITTER_AUTH_FORCE_LOGIN = getattr(
172 8fb8d0cf Giorgos Korfiatis
    settings, 'ASTAKOS_TWITTER_AUTH_FORCE_LOGIN', False)
173 5a3921a1 Sofia Papagiannaki
174 5a3921a1 Sofia Papagiannaki
# OAuth2 Google credentials.
175 5a3921a1 Sofia Papagiannaki
GOOGLE_CLIENT_ID = getattr(settings, 'ASTAKOS_GOOGLE_CLIENT_ID', '')
176 5a3921a1 Sofia Papagiannaki
GOOGLE_SECRET = getattr(settings, 'ASTAKOS_GOOGLE_SECRET', '')
177 5a3921a1 Sofia Papagiannaki
178 5a3921a1 Sofia Papagiannaki
# OAuth2 LinkedIn credentials.
179 5a3921a1 Sofia Papagiannaki
LINKEDIN_TOKEN = getattr(settings, 'ASTAKOS_LINKEDIN_TOKEN', '')
180 5a3921a1 Sofia Papagiannaki
LINKEDIN_SECRET = getattr(settings, 'ASTAKOS_LINKEDIN_SECRET', '')
181 398c10a2 Kostas Papadimitriou
182 984fec93 Kostas Papadimitriou
# URL to redirect the user after successful login when no next parameter is set
183 4991129c Kostas Papadimitriou
default_success_url = join_urls('/', BASE_PATH, VIEWS_PREFIX, "landing")
184 484a79a1 Georgios D. Tsoukalas
LOGIN_SUCCESS_URL = getattr(settings, 'ASTAKOS_LOGIN_SUCCESS_URL',
185 4991129c Kostas Papadimitriou
                            default_success_url)
186 984fec93 Kostas Papadimitriou
187 984fec93 Kostas Papadimitriou
# Whether or not to display projects in astakos menu
188 984fec93 Kostas Papadimitriou
PROJECTS_VISIBLE = getattr(settings, 'ASTAKOS_PROJECTS_VISIBLE', False)
189 0156e40c Kostas Papadimitriou
190 bea584e1 Giorgos Korfiatis
# A way to extend the components presentation metadata
191 bea584e1 Giorgos Korfiatis
COMPONENTS_META = getattr(settings, 'ASTAKOS_COMPONENTS_META', {})
192 37d59b27 Kostas Papadimitriou
193 37d59b27 Kostas Papadimitriou
# A way to extend the resources presentation metadata
194 37d59b27 Kostas Papadimitriou
RESOURCES_META = getattr(settings, 'ASTAKOS_RESOURCES_META', {})
195 e7cb4085 Kostas Papadimitriou
196 e7cb4085 Kostas Papadimitriou
# Do not require email verification for new users
197 e7cb4085 Kostas Papadimitriou
SKIP_EMAIL_VERIFICATION = getattr(settings,
198 e7cb4085 Kostas Papadimitriou
                                  'ASTAKOS_SKIP_EMAIL_VERIFICATION', False)
199 7763f5c6 Kostas Papadimitriou
200 7763f5c6 Kostas Papadimitriou
# Kamaki download url. Displayed in api access view
201 7763f5c6 Kostas Papadimitriou
API_CLIENT_URL = getattr(settings, 'ASTAKOS_API_CLIENT_URL',
202 7763f5c6 Kostas Papadimitriou
                         'https://pypi.python.org/pypi/kamaki')
203 1ca02d1a Kostas Papadimitriou
204 1ca02d1a Kostas Papadimitriou
KAMAKI_CONFIG_CLOUD_NAME = getattr(settings,
205 1ca02d1a Kostas Papadimitriou
                                   'ASTAKOS_KAMAKI_CONFIG_CLOUD_NAME',
206 1ca02d1a Kostas Papadimitriou
                                   None)
207 184f551f Georgios D. Tsoukalas
208 184f551f Georgios D. Tsoukalas
REDIRECT_ALLOWED_SCHEMES = getattr(settings,
209 184f551f Georgios D. Tsoukalas
                                   'ASTAKOS_REDIRECT_ALLOWED_SCHEMES',
210 abe6915b Christos Stavrakakis
                                   ('pithos', 'pithosdev'))
211 c8a38c0e Christos Stavrakakis
212 c8a38c0e Christos Stavrakakis
ADMIN_STATS_PERMITTED_GROUPS = getattr(settings,
213 c8a38c0e Christos Stavrakakis
                                       'ASTAKOS_ADMIN_STATS_PERMITTED_GROUPS',
214 c8a38c0e Christos Stavrakakis
                                       ['admin-stats'])
215 af4d8c34 Giorgos Korfiatis
216 af4d8c34 Giorgos Korfiatis
ENDPOINT_CACHE_TIMEOUT = getattr(settings,
217 af4d8c34 Giorgos Korfiatis
                                 'ASTAKOS_ENDPOINT_CACHE_TIMEOUT',
218 af4d8c34 Giorgos Korfiatis
                                 60)
219 56bbece7 Giorgos Korfiatis
220 56bbece7 Giorgos Korfiatis
RESOURCE_CACHE_TIMEOUT = getattr(settings,
221 56bbece7 Giorgos Korfiatis
                                 'ASTAKOS_RESOURCE_CACHE_TIMEOUT',
222 56bbece7 Giorgos Korfiatis
                                 60)