def create_key(): try: key = ApiKey.parse(request.json) except ValueError as e: raise ApiError(str(e), 400) if 'admin' in g.scopes or 'admin:keys' in g.scopes: key.user = key.user or g.user key.customer = key.customer or g.get('customer', None) else: key.user = g.user key.customer = g.get('customer', None) if not key.user: raise ApiError("Must set 'user' to create API key", 400) for want_scope in key.scopes: if not Permission.is_in_scope(want_scope, g.scopes): raise ApiError("Requested scope '%s' not in existing scopes: %s" % (want_scope, ','.join(g.scopes)), 403) try: key = key.create() except Exception as e: raise ApiError(str(e), 500) if key: return jsonify(status="ok", key=key.key, data=key.serialize), 201 else: raise ApiError("create API key failed", 500)
def create_key(): try: key = ApiKey.parse(request.json) except ValueError as e: raise ApiError(str(e), 400) if 'admin' in g.scopes or 'admin:keys' in g.scopes: key.user = key.user or g.user key.customer = key.customer or g.get('customer', None) else: key.user = g.user key.customer = g.get('customer', None) if not key.user: raise ApiError( "An API key must be associated with a 'user'. Retry with user credentials.", 400) for want_scope in key.scopes: if not Permission.is_in_scope(want_scope, g.scopes): raise ApiError( "Requested scope '%s' not in existing scopes: %s" % (want_scope, ','.join(g.scopes)), 403) try: key = key.create() except Exception as e: raise ApiError(str(e), 500) if key: return jsonify(status="ok", key=key.key, data=key.serialize), 201 else: raise ApiError("create API key failed", 500)
def create_key(): try: key = ApiKey.parse(request.json) except ValueError as e: raise ApiError(str(e), 400) if Scope.admin in g.scopes or Scope.admin_keys in g.scopes: key.user = key.user or g.login else: key.user = g.login key.customer = assign_customer(wanted=key.customer, permission=Scope.admin_keys) if not key.user: raise ApiError("An API key must be associated with a 'user'. Retry with user credentials.", 400) for want_scope in key.scopes: if not Permission.is_in_scope(want_scope, have_scopes=g.scopes): raise ApiError("Requested scope '{}' not in existing scopes: {}".format( want_scope, ','.join(g.scopes)), 403) try: key = key.create() except Exception as e: raise ApiError(str(e), 500) write_audit_trail.send(current_app._get_current_object(), event='apikey-created', message='', user=g.login, customers=g.customers, scopes=g.scopes, resource_id=key.id, type='apikey', request=request) if key: return jsonify(status='ok', key=key.key, data=key.serialize), 201 else: raise ApiError('create API key failed', 500)
def create_key(): try: key = ApiKey.parse(request.json) except ValueError as e: raise ApiError(str(e), 400) if Scope.admin in g.scopes or Scope.admin_keys in g.scopes: key.user = key.user or g.login else: key.user = g.login key.customer = assign_customer(wanted=key.customer, permission=Scope.admin_keys) if not key.user: raise ApiError( "An API key must be associated with a 'user'. Retry with user credentials.", 400) for want_scope in key.scopes: if not Permission.is_in_scope(want_scope, have_scopes=g.scopes): raise ApiError( "Requested scope '{}' not in existing scopes: {}".format( want_scope, ','.join(g.scopes)), 403) try: key = key.create() except Exception as e: raise ApiError(str(e), 500) write_audit_trail.send(current_app._get_current_object(), event='apikey-created', message='', user=g.login, customers=g.customers, scopes=g.scopes, resource_id=key.id, type='apikey', request=request) if key: return jsonify(status='ok', key=key.key, data=key.serialize), 201 else: raise ApiError('create API key failed', 500)