Add messaging around required params for oauth. Style fixes.

This commit is contained in:
Jake Moshenko 2014-07-21 15:09:31 -04:00
parent 70a35ab421
commit b39b847c98
2 changed files with 25 additions and 5 deletions

View file

@ -67,6 +67,17 @@ def truthy_param(param):
return param not in {False, 'false', 'False', '0', 'FALSE', '', 'null'}
def param_required(param_name):
def wrapper(wrapped):
@wraps(wrapped)
def decorated(*args, **kwargs):
if param_name not in request.args:
abort(make_response('Required param: %s' % param_name, 400))
return wrapped(*args, **kwargs)
return decorated
return wrapper
@login_manager.user_loader
def load_user(username):
logger.debug('User loader loading deferred user: %s' % username)
@ -198,7 +209,7 @@ def start_build(repository, dockerfile_id, tags, build_name, subdir, manual,
build_request = model.create_repository_build(repository, token, job_config,
dockerfile_id, build_name,
trigger, pull_robot_name = pull_robot_name)
trigger, pull_robot_name=pull_robot_name)
dockerfile_build_queue.put([repository.namespace, repository.name], json.dumps({
'build_uuid': build_request.uuid,

View file

@ -14,7 +14,7 @@ from auth.permissions import AdministerOrganizationPermission
from util.invoice import renderInvoiceToPdf
from util.seo import render_snapshot
from util.cache import no_cache
from endpoints.common import common_login, render_page_template, route_show_if, route_hide_if
from endpoints.common import common_login, render_page_template, route_show_if, param_required
from endpoints.csrf import csrf_protect, generate_csrf_token
from util.names import parse_repository_name
from util.gravatar import compute_hash
@ -190,9 +190,9 @@ def receipt():
abort(401)
return
id = request.args.get('id')
if id:
invoice = stripe.Invoice.retrieve(id)
invoice_id = request.args.get('id')
if invoice_id:
invoice = stripe.Invoice.retrieve(invoice_id)
if invoice:
user_or_org = model.get_user_or_org_by_customer_id(invoice.customer)
@ -315,6 +315,9 @@ def deny_application():
@web.route('/oauth/authorize', methods=['GET'])
@no_cache
@param_required('client_id')
@param_required('redirect_uri')
@param_required('scope')
def request_authorization_code():
provider = FlaskAuthorizationProvider()
response_type = request.args.get('response_type', 'code')
@ -364,6 +367,12 @@ def request_authorization_code():
@web.route('/oauth/access_token', methods=['POST'])
@no_cache
@param_required('grant_type')
@param_required('client_id')
@param_required('client_secret')
@param_required('redirect_uri')
@param_required('code')
@param_required('scope')
def exchange_code_for_token():
grant_type = request.form.get('grant_type', None)
client_id = request.form.get('client_id', None)