equal
deleted
inserted
replaced
181 return |
181 return |
182 |
182 |
183 raise out_of_band.LoginRequest(message_fmt=DEF_NO_USER_LOGIN_MSG_FMT) |
183 raise out_of_band.LoginRequest(message_fmt=DEF_NO_USER_LOGIN_MSG_FMT) |
184 |
184 |
185 |
185 |
186 def checkAgreesToSiteToS(request): |
186 def checkAgreesToSiteToS(request, args, kwargs): |
187 """Raises an alternate HTTP response if User has not agreed to site-wide ToS. |
187 """Raises an alternate HTTP response if User has not agreed to site-wide ToS. |
188 |
188 |
189 Args: |
189 Args: |
190 request: a Django HTTP request |
190 request: a Django HTTP request |
191 |
191 |
193 AccessViolationResponse: |
193 AccessViolationResponse: |
194 * if User has not agreed to the site-wide ToS, or |
194 * if User has not agreed to the site-wide ToS, or |
195 * if no User exists for the logged-in Google Account, or |
195 * if no User exists for the logged-in Google Account, or |
196 * if no Google Account is logged in at all |
196 * if no Google Account is logged in at all |
197 """ |
197 """ |
198 checkIsUser(request) |
198 checkIsUser(request, args, kwargs) |
199 |
199 |
200 user = user_logic.getForFields({'account': users.get_current_user()}, |
200 user = user_logic.getForFields({'account': users.get_current_user()}, |
201 unique=True) |
201 unique=True) |
202 |
202 |
203 if user_logic.agreesToSiteToS(user): |
203 if user_logic.agreesToSiteToS(user): |
221 AccessViolationResponse: |
221 AccessViolationResponse: |
222 * if User is not a Developer, or |
222 * if User is not a Developer, or |
223 * if no User exists for the logged-in Google Account, or |
223 * if no User exists for the logged-in Google Account, or |
224 * if no Google Account is logged in at all |
224 * if no Google Account is logged in at all |
225 """ |
225 """ |
|
226 # Developers need to bypass the ToS check to avoid "chicken-and-egg" problem |
226 checkIsUser(request, args, kwargs) |
227 checkIsUser(request, args, kwargs) |
227 |
228 |
228 if accounts.isDeveloper(account=users.get_current_user()): |
229 if accounts.isDeveloper(account=users.get_current_user()): |
229 return |
230 return |
230 |
231 |
255 checkIsInvited(request, args, kwargs) |
256 checkIsInvited(request, args, kwargs) |
256 return |
257 return |
257 except out_of_band.Error: |
258 except out_of_band.Error: |
258 pass |
259 pass |
259 |
260 |
260 checkIsUser(request, args, kwargs) |
261 checkAgreesToSiteToS(request, args, kwargs) |
261 |
262 |
262 user = user_logic.getForFields({'account': users.get_current_user()}, |
263 user = user_logic.getForFields({'account': users.get_current_user()}, |
263 unique=True) |
264 unique=True) |
264 |
265 |
265 host = host_logic.getForFields({'user': user}, unique=True) |
266 host = host_logic.getForFields({'user': user}, unique=True) |
294 checkIsDeveloper(request, args, kwargs) |
295 checkIsDeveloper(request, args, kwargs) |
295 return |
296 return |
296 except out_of_band.Error: |
297 except out_of_band.Error: |
297 pass |
298 pass |
298 |
299 |
299 checkIsUser(request, args, kwargs) |
300 checkAgreesToSiteToS(request, args, kwargs) |
300 |
301 |
301 # TODO(srabbelier) implement this |
302 # TODO(srabbelier) implement this |
302 |
303 |
303 login_message_fmt = DEF_DEV_LOGOUT_LOGIN_MSG_FMT % { |
304 login_message_fmt = DEF_DEV_LOGOUT_LOGIN_MSG_FMT % { |
304 'role': 'a Club Admin for this Club'} |
305 'role': 'a Club Admin for this Club'} |
327 checkIsDeveloper(request, args, kwargs) |
328 checkIsDeveloper(request, args, kwargs) |
328 return |
329 return |
329 except out_of_band.Error: |
330 except out_of_band.Error: |
330 pass |
331 pass |
331 |
332 |
332 checkIsUser(request, args, kwargs) |
333 checkAgreesToSiteToS(request, args, kwargs) |
333 |
334 |
334 login_message_fmt = DEF_DEV_LOGOUT_LOGIN_MSG_FMT % { |
335 login_message_fmt = DEF_DEV_LOGOUT_LOGIN_MSG_FMT % { |
335 'role': 'a Program Administrator for this Program'} |
336 'role': 'a Program Administrator for this Program'} |
336 |
337 |
337 splitpath = request.path.split('/') |
338 splitpath = request.path.split('/') |
389 checkIsDeveloper(request, args, kwargs) |
390 checkIsDeveloper(request, args, kwargs) |
390 return |
391 return |
391 except out_of_band.Error: |
392 except out_of_band.Error: |
392 pass |
393 pass |
393 |
394 |
394 checkIsUser(request, args, kwargs) |
395 checkAgreesToSiteToS(request, args, kwargs) |
395 |
396 |
396 user = user_logic.getForCurrentAccount() |
397 user = user_logic.getForCurrentAccount() |
397 |
398 |
398 properties = { |
399 properties = { |
399 'applicant': user, |
400 'applicant': user, |
432 checkIsDeveloper(request, args, kwargs) |
433 checkIsDeveloper(request, args, kwargs) |
433 return |
434 return |
434 except out_of_band.Error: |
435 except out_of_band.Error: |
435 pass |
436 pass |
436 |
437 |
437 checkIsUser(request, args, kwargs) |
438 checkAgreesToSiteToS(request, args, kwargs) |
438 |
439 |
439 # Mine the url for params |
440 # Mine the url for params |
440 try: |
441 try: |
441 callback, args, kwargs = urlresolvers.resolve(request.path) |
442 callback, args, kwargs = urlresolvers.resolve(request.path) |
442 except Exception: |
443 except Exception: |
477 checkIsDeveloper(request, args, kwargs) |
478 checkIsDeveloper(request, args, kwargs) |
478 return |
479 return |
479 except out_of_band.Error: |
480 except out_of_band.Error: |
480 pass |
481 pass |
481 |
482 |
482 checkIsUser(request, args, kwargs) |
483 checkAgreesToSiteToS(request, args, kwargs) |
483 |
484 |
484 properties = dicts.filter(kwargs, ['link_id']) |
485 properties = dicts.filter(kwargs, ['link_id']) |
485 |
486 |
486 application = app_logic.logic.getForFields(properties, unique=True) |
487 application = app_logic.logic.getForFields(properties, unique=True) |
487 |
488 |