Revision 5a3921a1
b/snf-astakos-app/README | ||
---|---|---|
48 | 48 |
ASTAKOS_INVITATIONS_PER_LEVEL {0:100, 1:2, 2:0, 3:0, 4:0} Number of user invitations per user level |
49 | 49 |
ASTAKOS_DEFAULT_FROM_EMAIL GRNET Cloud <no-reply\@grnet.gr> ``from`` parameter passed in ``django.core.mail.send_mail`` |
50 | 50 |
ASTAKOS_DEFAULT_CONTACT_EMAIL support\@cloud.grnet.gr Contact email |
51 |
ASTAKOS_DEFAULT_ADMIN_EMAIL support\@cloud.grnet.gr Administrator email to receive user creation notifications (if None disables notifications) |
|
52 |
ASTAKOS_IM_MODULES ['local', 'shibboleth'] Signup modules |
|
51 |
SERVER_EMAIL None |
|
52 |
ADMINS None |
|
53 |
ASTAKOS_IM_MODULES ['local'] Signup modules |
|
53 | 54 |
ASTAKOS_FORCE_PROFILE_UPDATE True Force user profile verification |
54 | 55 |
ASTAKOS_INVITATIONS_ENABLED True Enable invitations |
55 | 56 |
ASTAKOS_COOKIE_NAME _pithos2_a ``Key`` parameter passed in ``django.http.HttpResponse.set_cookie`` |
... | ... | |
59 | 60 |
ASTAKOS_MODERATION_ENABLED True If False and invitations are not enabled newly created user will be automatically accepted |
60 | 61 |
ASTAKOS_BASEURL \http://pithos.dev.grnet.gr Astakos baseurl |
61 | 62 |
ASTAKOS_SITENAME GRNET Cloud Service name that appears in emails |
62 |
ASTAKOS_RECAPTCHA_ENABLED True Enable recaptcha |
|
63 | 63 |
ASTAKOS_RECAPTCHA_PUBLIC_KEY Recaptcha public key obtained after registration here: http://recaptcha.net |
64 | 64 |
ASTAKOS_RECAPTCHA_PRIVATE_KEY Recaptcha private key obtained after registration here: http://recaptcha.net |
65 |
ASTAKOS_RECAPTCHA_OPTIONS {'theme': 'white'} Options for customizing reCAPTCHA look and feel |
|
65 |
ASTAKOS_RECAPTCHA_OPTIONS {'theme': 'custom', 'custom_theme_widget': 'okeanos_recaptcha'} Options for customizing reCAPTCHA look and feel |
|
66 |
ASTAKOS_RECAPTCHA_USE_SSL True |
|
67 |
ASTAKOS_RECAPTCHA_ENABLED False Enable recaptcha |
|
66 | 68 |
(see: http://code.google.com/intl/el-GR/apis/recaptcha/docs/customization.html) |
69 |
ASTAKOS_BILLING_FIELDS ['is_active'] AstakosUser fields to propagate in the billing system |
|
70 |
ASTAKOS_QUEUE_CONNECTION The queue connection ex. 'rabbitmq://guest:guest@localhost:5672/astakos' |
|
67 | 71 |
ASTAKOS_LOGOUT_NEXT Where the user should be redirected after logout |
68 | 72 |
(if not set and no next parameter is defined it renders login page with message) |
69 |
ASTAKOS_BILLING_FIELDS ['id', 'is_active', 'provider', 'third_party_identifier'] AstakosUser fields to propagate in the billing system |
|
70 |
ASTAKOS_QUEUE_CONNECTION The queue connection ex. 'rabbitmq://guest:guest@localhost:5672/astakos' |
|
71 | 73 |
(if it is not set, it does not send messages) |
72 | 74 |
ASTAKOS_RE_USER_EMAIL_PATTERNS [] Email patterns that are automatically activated ex. ['^[a-zA-Z0-9\._-]+@grnet\.gr$'] |
73 | 75 |
|
74 |
ASTAKOS_LOGIN_MESSAGES {} Notification messages to display on login page header |
|
76 |
ASTAKOS_LOGIN_MESSAGES [] Notification messages to display on login page header |
|
77 |
e.g. {'warning': 'Warning message (can contain html)'} |
|
78 |
ASTAKOS_SIGNUP_MESSAGES [] Notification messages to display on signup page header |
|
79 |
e.g. {'warning': 'Warning message (can contain html)'} |
|
80 |
ASTAKOS_PROFILE_MESSAGES [] Notification messages to display on profile page header |
|
81 |
e.g. {'warning': 'Warning message (can contain html)'} |
|
82 |
ASTAKOS_GLOBAL_MESSAGES [] Notification messages to display on every page header |
|
75 | 83 |
e.g. {'warning': 'Warning message (can contain html)'} |
76 | 84 |
ASTAKOS_PROFILE_EXTRA_LINKS {} Messages to display as extra actions in account forms |
77 | 85 |
e.g. {'https://cms.okeanos.grnet.gr/': 'Back to ~okeanos'} |
... | ... | |
124 | 132 |
'name': 'diskspace', |
125 | 133 |
'unit': 'bytes', |
126 | 134 |
'uplimit': 5368709120}], |
127 |
'url': 'https://node2.example.com/ui/'}}
|
|
135 |
'url': 'https://node2.example.com/ui/'}} |
|
128 | 136 |
ASTAKOS_AQUARIUM_URL '' The billing (aquarium) URI |
129 | 137 |
e.g. ``http://localhost:8888/user`` |
130 |
ASTAKOS_PAGINATE_BY 10 Number of object to be displayed per page |
|
138 |
ASTAKOS_PAGINATE_BY 8 Number of object to be displayed per page |
|
139 |
ASTAKOS_PAGINATE_BY_ALL 15 Number of object to be displayed per pagein show all projects page |
|
131 | 140 |
|
132 | 141 |
ASTAKOS_NEWPASSWD_INVALIDATE_TOKEN True Enforce token renewal on password change/reset. If set to False, user can optionally decide |
133 | 142 |
whether to renew the token or not. |
134 | 143 |
ASTAKOS_ENABLE_LOCAL_ACCOUNT_MIGRATION True Permit local account migration to third party account |
144 |
ASTAKOS_RESOURCES_PRESENTATION_DATA {} Customizes resource presentation |
|
145 |
ASTAKOS_ENABLE_LOCAL_ACCOUNT_MIGRATION True Permits local account migration |
|
146 |
ASTAKOS_SHIBBOLETH_REQUIRE_NAME_INFO False Strict shibboleth usage |
|
147 |
ASTAKOS_PROJECT_MEMBER_JOIN_POLICIES {'1':'automatically accepted', '2':'owner accepts', '3':'closed'} Text to be displayed in project member join policy dropdown |
|
148 |
ASTAKOS_PROJECT_MEMBER_LEAVE_POLICIES {'1':'automatically accepted', '2':'owner accepts', '3':'closed'} Text to be displayed in project member leave policy dropdown |
|
149 |
ASTAKOS_ACTIVATION_REDIRECT_URL "/im/landing" |
|
150 |
ASTAKOS_TRANSLATE_UUIDS False If true, this enables a ui compatibility layer for the introduction of UUIDs in identity management. |
|
151 |
WARNING: Setting to True will break your installation. |
|
152 |
ASTAKOS_PROJECT_ADMINS set() Users to approve/deny project applications |
|
153 |
ASTAKOS_TWITTER_TOKEN '' Oauth2 twitter token |
|
154 |
ASTAKOS_TWITTER_SECRET '' Oauth2 twitter secret |
|
155 |
ASTAKOS_TWITTER_AUTH_FORCE_LOGIN Fals |
|
156 |
ASTAKOS_GOOGLE_CLIENT_ID '' Oauth2 google client id |
|
157 |
ASTAKOS_GOOGLE_SECRET '' Oauth2 google secret |
|
158 |
ASTAKOS_LINKEDIN_TOKEN '' Oauth2 LinkedIn token |
|
159 |
ASTAKOS_LINKEDIN_SECRET '' Oauth2 LinkedIn secret |
|
135 | 160 |
=========================================== ============================================================================= =========================================================================================== |
136 | 161 |
|
137 | 162 |
Administrator functions |
b/snf-astakos-app/astakos/im/settings.py | ||
---|---|---|
4 | 4 |
# to be this many hours after their creation time. |
5 | 5 |
AUTH_TOKEN_DURATION = getattr(settings, 'ASTAKOS_AUTH_TOKEN_DURATION', 30 * 24) |
6 | 6 |
|
7 |
# OAuth2 Twitter credentials. |
|
8 |
TWITTER_TOKEN = getattr(settings, 'ASTAKOS_TWITTER_TOKEN', '') |
|
9 |
TWITTER_SECRET = getattr(settings, 'ASTAKOS_TWITTER_SECRET', '') |
|
10 |
TWITTER_AUTH_FORCE_LOGIN = getattr(settings, 'ASTAKOS_TWITTER_AUTH_FORCE_LOGIN', |
|
11 |
False) |
|
12 |
|
|
13 |
|
|
14 |
# OAuth2 Google credentials. |
|
15 |
GOOGLE_CLIENT_ID = getattr(settings, 'ASTAKOS_GOOGLE_CLIENT_ID', '') |
|
16 |
GOOGLE_SECRET = getattr(settings, 'ASTAKOS_GOOGLE_SECRET', '') |
|
17 | 7 |
|
18 |
# OAuth2 LinkedIn credentials. |
|
19 |
LINKEDIN_TOKEN = getattr(settings, 'ASTAKOS_LINKEDIN_TOKEN', '') |
|
20 |
LINKEDIN_SECRET = getattr(settings, 'ASTAKOS_LINKEDIN_SECRET', '') |
|
21 | 8 |
|
22 | 9 |
DEFAULT_USER_LEVEL = getattr(settings, 'ASTAKOS_DEFAULT_USER_LEVEL', 4) |
23 | 10 |
|
... | ... | |
227 | 214 |
# Set how many objects should be displayed per page |
228 | 215 |
PAGINATE_BY = getattr(settings, 'ASTAKOS_PAGINATE_BY', 8) |
229 | 216 |
|
230 |
# Set how many objects should be displayed per page in show all groups page
|
|
217 |
# Set how many objects should be displayed per page in show all projects page
|
|
231 | 218 |
PAGINATE_BY_ALL = getattr(settings, 'ASTAKOS_PAGINATE_BY_ALL', 15) |
232 | 219 |
|
233 | 220 |
# Enforce token renewal on password change/reset |
... | ... | |
347 | 334 |
|
348 | 335 |
# Users that can approve or deny project applications from the web. |
349 | 336 |
PROJECT_ADMINS = getattr(settings, 'ASTAKOS_PROJECT_ADMINS', set()) |
337 |
|
|
338 |
# OAuth2 Twitter credentials. |
|
339 |
TWITTER_TOKEN = getattr(settings, 'ASTAKOS_TWITTER_TOKEN', '') |
|
340 |
TWITTER_SECRET = getattr(settings, 'ASTAKOS_TWITTER_SECRET', '') |
|
341 |
TWITTER_AUTH_FORCE_LOGIN = getattr(settings, 'ASTAKOS_TWITTER_AUTH_FORCE_LOGIN', |
|
342 |
False) |
|
343 |
|
|
344 |
# OAuth2 Google credentials. |
|
345 |
GOOGLE_CLIENT_ID = getattr(settings, 'ASTAKOS_GOOGLE_CLIENT_ID', '') |
|
346 |
GOOGLE_SECRET = getattr(settings, 'ASTAKOS_GOOGLE_SECRET', '') |
|
347 |
|
|
348 |
# OAuth2 LinkedIn credentials. |
|
349 |
LINKEDIN_TOKEN = getattr(settings, 'ASTAKOS_LINKEDIN_TOKEN', '') |
|
350 |
LINKEDIN_SECRET = getattr(settings, 'ASTAKOS_LINKEDIN_SECRET', '') |
b/snf-astakos-app/conf/20-snf-astakos-app-settings.conf | ||
---|---|---|
2 | 2 |
# to be this many hours after their creation time. |
3 | 3 |
#ASTAKOS_AUTH_TOKEN_DURATION = 30 * 24 |
4 | 4 |
|
5 |
# Authenticate via Twitter. |
|
6 |
#ASTAKOS_TWITTER_KEY = '' |
|
7 |
#ASTAKOS_TWITTER_SECRET = '' |
|
8 |
|
|
9 | 5 |
#ASTAKOS_DEFAULT_USER_LEVEL = 4 |
10 | 6 |
|
11 | 7 |
#ASTAKOS_INVITATIONS_PER_LEVEL = { |
... | ... | |
17 | 13 |
#} |
18 | 14 |
|
19 | 15 |
# Address to use for outgoing emails |
20 |
#ASTAKOS_DEFAULT_FROM_EMAIL = 'GRNET Cloud <no-reply@grnet.gr>' |
|
21 | 16 |
#ASTAKOS_DEFAULT_CONTACT_EMAIL = 'support@cloud.grnet.gr' |
22 |
#ASTAKOS_DEFAULT_ADMIN_EMAIL = 'admin@cloud.grnet.gr' |
|
17 |
|
|
18 |
#SERVER_EMAIL = None |
|
19 |
#ADMINS = None |
|
23 | 20 |
|
24 | 21 |
# Identity Management enabled modules |
25 | 22 |
# Supported modules are: 'local', 'twitter' and 'shibboleth' |
... | ... | |
51 | 48 |
# http://www.google.com/recaptcha/whyrecaptcha |
52 | 49 |
#ASTAKOS_RECAPTCHA_PUBLIC_KEY = '' |
53 | 50 |
#ASTAKOS_RECAPTCHA_PRIVATE_KEY = '' |
54 |
#ASTAKOS_RECAPTCHA_OPTIONS = {'theme':'white'}
|
|
51 |
#ASTAKOS_RECAPTCHA_OPTIONS = {'theme': 'custom', 'custom_theme_widget': 'okeanos_recaptcha'}
|
|
55 | 52 |
#ASTAKOS_RECAPTCHA_USE_SSL = True |
56 | 53 |
#ASTAKOS_RECAPTCHA_ENABLED = False |
57 | 54 |
|
... | ... | |
60 | 57 |
|
61 | 58 |
# Queue for billing. |
62 | 59 |
#'rabbitmq://guest:guest@localhost:5672/astakos' |
63 |
#QUEUE_CONNECTION = None |
|
60 |
#ASTAKOS_QUEUE_CONNECTION = None
|
|
64 | 61 |
|
65 | 62 |
# Set where the user should be redirected after logout |
66 | 63 |
#ASTAKOS_LOGOUT_NEXT = '' |
... | ... | |
123 | 120 |
#ASTAKOS_QUOTAHOLDER_TOKEN = '' |
124 | 121 |
|
125 | 122 |
# Set the cloud service properties |
126 |
# SERVICES = getattr(settings, 'ASTAKOS_SERVICES', |
|
127 |
# {'cyclades': {'url':'https://node1.example.com/ui/', |
|
128 |
# 'quota': {'vm': 2}}, |
|
129 |
# 'pithos+': {'url':'https://node2.example.com/ui/', |
|
130 |
# 'quota': {'diskspace': 50 * 1024 * 1024 * 1024}}}) |
|
123 |
# ASTAKOS_SERVICES = { |
|
124 |
# 'cyclades': { |
|
125 |
## 'url': 'https://node1.example.com/ui/', |
|
126 |
# 'resources': [{ |
|
127 |
# 'name':'disk', |
|
128 |
# 'group':'compute', |
|
129 |
# 'uplimit':30*1024*1024*1024, |
|
130 |
# 'unit':'bytes', |
|
131 |
# 'desc': 'Virtual machine disk size' |
|
132 |
# },{ |
|
133 |
# 'name':'cpu', |
|
134 |
# 'group':'compute', |
|
135 |
# 'uplimit':6, |
|
136 |
# 'desc': 'Number of virtual machine processors' |
|
137 |
# },{ |
|
138 |
# 'name':'ram', |
|
139 |
# 'group':'compute', |
|
140 |
# 'uplimit':6*1024*1024*1024, |
|
141 |
# 'unit':'bytes', |
|
142 |
# 'desc': 'Virtual machines' |
|
143 |
# },{ |
|
144 |
# 'name':'vm', |
|
145 |
# 'group':'compute', |
|
146 |
# 'uplimit':2, |
|
147 |
# 'desc': 'Number of virtual machines' |
|
148 |
# },{ |
|
149 |
# 'name':'network.private', |
|
150 |
# 'group':'network', |
|
151 |
# 'uplimit':1, |
|
152 |
# 'desc': 'Private networks' |
|
153 |
# } |
|
154 |
# ] |
|
155 |
# }, |
|
156 |
# 'pithos+': { |
|
157 |
## 'url': 'https://node2.example.com/ui/', |
|
158 |
# 'resources':[{ |
|
159 |
# 'name':'diskspace', |
|
160 |
# 'group':'storage', |
|
161 |
# 'uplimit':5 * 1024 * 1024 * 1024, |
|
162 |
# 'unit':'bytes', |
|
163 |
# 'desc': 'Pithos account diskspace' |
|
164 |
# }] |
|
165 |
# } |
|
166 |
#} |
|
131 | 167 |
|
132 | 168 |
# Set the billing URI |
133 | 169 |
#ASTAKOS_AQUARIUM_URL = '' |
134 | 170 |
|
135 | 171 |
# Set how many objects should be displayed per page |
136 |
#PAGINATE_BY = getattr(settings, 'ASTAKOS_PAGINATE_BY', 10) |
|
172 |
#ASTAKOS_PAGINATE_BY = 10 |
|
173 |
# Set how many objects should be displayed per page in show all groups page |
|
174 |
#ASTAKOS_PAGINATE_BY_ALL = 15 |
|
137 | 175 |
|
138 | 176 |
# Enforce token renewal on password change/reset |
139 |
# NEWPASSWD_INVALIDATE_TOKEN = getattr(settings, 'ASTAKOS_NEWPASSWD_INVALIDATE_TOKEN', True) |
|
177 |
#ASTAKOS_NEWPASSWD_INVALIDATE_TOKEN = True |
|
178 |
|
|
179 |
#ASTAKOS_USAGE_UPDATE_INTERVAL = 5000 |
|
180 |
|
|
181 |
#ASTAKOS_RESOURCES_PRESENTATION_DATA = { |
|
182 |
# 'groups': { |
|
183 |
# 'compute': { |
|
184 |
# 'help_text':'Compute resources (amount of VMs, CPUs, RAM, System disk) ', |
|
185 |
# 'is_abbreviation':False, |
|
186 |
# 'report_desc':'', |
|
187 |
# 'verbose_name':'compute', |
|
188 |
# }, |
|
189 |
# 'storage': { |
|
190 |
# 'help_text':'Storage resources (amount of space to store files on Pithos) ', |
|
191 |
# 'is_abbreviation':False, |
|
192 |
# 'report_desc':'', |
|
193 |
# 'verbose_name':'storage', |
|
194 |
# }, |
|
195 |
# 'network': { |
|
196 |
# 'help_text':' Network resources (amount of Private Networks) ', |
|
197 |
# 'is_abbreviation':False, |
|
198 |
# 'report_desc':'', |
|
199 |
# 'verbose_name':'network', |
|
200 |
# }, |
|
201 |
# }, |
|
202 |
# 'resources': { |
|
203 |
# 'pithos+.diskspace': { |
|
204 |
# 'help_text':'This is the space on Pithos for storing files and VM Images. ', |
|
205 |
# 'help_text_input_each':'This is the total amount of space on Pithos that will be granted to each user of this Project ', |
|
206 |
# 'is_abbreviation':False, |
|
207 |
# 'report_desc':'Storage Space', |
|
208 |
# 'placeholder':'eg. 10GB', |
|
209 |
# 'verbose_name':'Storage Space', |
|
210 |
# }, |
|
211 |
# 'cyclades.disk': { |
|
212 |
# 'help_text':'This is the System Disk that the VMs have that run the OS ', |
|
213 |
# 'help_text_input_each':"This is the total amount of System Disk that will be granted to each user of this Project (this refers to the total System Disk of all VMs, not each VM's System Disk) ", |
|
214 |
# 'is_abbreviation':False, |
|
215 |
# 'report_desc':'System Disk', |
|
216 |
# 'placeholder':'eg. 5GB, 2GB etc', |
|
217 |
# 'verbose_name':'System Disk' |
|
218 |
# }, |
|
219 |
# 'cyclades.ram': { |
|
220 |
# 'help_text':'RAM used by VMs ', |
|
221 |
# 'help_text_input_each':'This is the total amount of RAM that will be granted to each user of this Project (on all VMs) ', |
|
222 |
# 'is_abbreviation':True, |
|
223 |
# 'report_desc':'RAM', |
|
224 |
# 'placeholder':'eg. 4GB', |
|
225 |
# 'verbose_name':'ram' |
|
226 |
# }, |
|
227 |
# 'cyclades.cpu': { |
|
228 |
# 'help_text':'CPUs used by VMs ', |
|
229 |
# 'help_text_input_each':'This is the total number of CPUs that will be granted to each user of this Project (on all VMs) ', |
|
230 |
# 'is_abbreviation':True, |
|
231 |
# 'report_desc':'CPUs', |
|
232 |
# 'placeholder':'eg. 1', |
|
233 |
# 'verbose_name':'cpu' |
|
234 |
# }, |
|
235 |
# 'cyclades.vm': { |
|
236 |
# 'help_text':'These are the VMs one can create on the Cyclades UI ', |
|
237 |
# 'help_text_input_each':'This is the total number of VMs that will be granted to each user of this Project ', |
|
238 |
# 'is_abbreviation':True, |
|
239 |
# 'report_desc':'Virtual Machines', |
|
240 |
# 'placeholder':'eg. 2', |
|
241 |
# 'verbose_name':'vm', |
|
242 |
# }, |
|
243 |
# 'cyclades.network.private': { |
|
244 |
# 'help_text':'These are the Private Networks one can create on the Cyclades UI. ', |
|
245 |
# 'help_text_input_each':'This is the total number of Private Networks that will be granted to each user of this Project ', |
|
246 |
# 'is_abbreviation':False, |
|
247 |
# 'report_desc':'Private Networks', |
|
248 |
# 'placeholder':'eg. 1', |
|
249 |
# 'verbose_name':'private network' |
|
250 |
# } |
|
251 |
# |
|
252 |
# }, |
|
253 |
# |
|
254 |
# 'groups_order': ['storage', 'compute', 'network'], |
|
255 |
# 'resources_order': ['pithos+.diskspace', 'cyclades.disk', |
|
256 |
# 'cyclades.cpu', 'cyclades.ram', 'cyclades.vm', |
|
257 |
# 'cyclades.network.private'] |
|
258 |
# |
|
259 |
# } |
|
140 | 260 |
|
141 | 261 |
# Permit local account migration |
142 |
# ENABLE_LOCAL_ACCOUNT_MIGRATION = getattr(settings, 'ASTAKOS_ENABLE_LOCAL_ACCOUNT_MIGRATION', True) |
|
262 |
#ASTAKOS_ENABLE_LOCAL_ACCOUNT_MIGRATION = True |
|
263 |
|
|
264 |
# Strict shibboleth usage |
|
265 |
#ASTAKOS_SHIBBOLETH_REQUIRE_NAME_INFO = False |
|
266 |
|
|
267 |
#ASTAKOS_PROJECT_MEMBER_JOIN_POLICIES = {'1':'automatically accepted', |
|
268 |
# '2':'owner accepts', |
|
269 |
# '3':'closed'} |
|
270 |
|
|
271 |
#ASTAKOS_PROJECT_MEMBER_LEAVE_POLICIES' = {'1':'automatically accepted', |
|
272 |
# '2':'owner accepts', |
|
273 |
# '3':'closed'} |
|
274 |
|
|
275 |
#ASTAKOS_ACTIVATION_REDIRECT_URL = "/im/landing" |
|
276 |
|
|
277 |
# If true, this enables a ui compatibility layer for the introduction of UUIDs |
|
278 |
# in identity management. WARNING: Setting to True will break your installation. |
|
279 |
#ASTAKOS_TRANSLATE_UUIDS = False |
|
143 | 280 |
|
144 | 281 |
# UUIDs of users that can approve or deny project applications from the web. |
145 | 282 |
# ASTAKOS_PROJECT_ADMINS = set() # e.g. set(['01234567-89ab-cdef-0123-456789abcdef']) |
... | ... | |
148 | 285 |
# of UUIDs in identity management. |
149 | 286 |
# WARNING: Setting to True will break your installation. |
150 | 287 |
# ASTAKOS_TRANSLATE_UUIDS = False |
288 |
|
|
289 |
# OAuth2 Twitter credentials. |
|
290 |
#ASTAKOS_TWITTER_KEY = '' |
|
291 |
#ASTAKOS_TWITTER_SECRET = '' |
|
292 |
#ASTAKOS_TWITTER_AUTH_FORCE_LOGIN = False |
|
293 |
|
|
294 |
# OAuth2 Google credentials |
|
295 |
#ASTAKOS_GOOGLE_CLIENT_ID = '' |
|
296 |
#ASTAKOS_GOOGLE_SECRET = '' |
|
297 |
|
|
298 |
# OAuth2 LinkedIn credentials. |
|
299 |
#ASTAKOS_LINKEDIN_TOKEN = '' |
|
300 |
#ASTAKOS_LINKEDIN_SECRET = '' |
Also available in: Unified diff