Have the index use the same abort method
This commit is contained in:
parent
aa5f669e69
commit
30a26d099f
3 changed files with 32 additions and 25 deletions
27
util/http.py
Normal file
27
util/http.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
from flask import request, abort as flask_abort
|
||||
from auth.auth import process_auth, extract_namespace_repo_from_session, get_authenticated_user, get_validated_token
|
||||
|
||||
DEFAULT_MESSAGE = {}
|
||||
DEFAULT_MESSAGE[400] = 'Invalid Request'
|
||||
DEFAULT_MESSAGE[403] = 'Forbidden'
|
||||
DEFAULT_MESSAGE[404] = 'Not Found'
|
||||
|
||||
def abort(status_code, message=None, **kwargs):
|
||||
if status_code == 403 and not message:
|
||||
# Create a default error message for auth failure.
|
||||
message = 'Forbidden. '
|
||||
auth_user = get_authenticated_user()
|
||||
auth_token = get_validated_token()
|
||||
if auth_user:
|
||||
message = message + 'Current user: ' + auth_user
|
||||
elif auth_token:
|
||||
message = message + 'Current token: ' + auth_token
|
||||
|
||||
message = message % kwargs if message else DEFAULT_MESSAGE[status_code]
|
||||
|
||||
# Log the abort.
|
||||
log.error('Error %s: %s. Arguments: %s' % (status_code, message, request.view_args))
|
||||
|
||||
# Report the abort to the user.
|
||||
flask_abort(make_response(HTTPException(message), status_code, headers))
|
||||
|
Reference in a new issue