diff --git a/app/api/base.py b/app/api/base.py index 36d9bd50..6138464f 100644 --- a/app/api/base.py +++ b/app/api/base.py @@ -13,15 +13,16 @@ api_bp = Blueprint(name="api", import_name=__name__, url_prefix="/api") def require_api_auth(f): @wraps(f) def decorated(*args, **kwargs): - if current_user.is_authenticated: - g.user = current_user - else: - api_code = request.headers.get("Authentication") - api_key = ApiKey.get_by(code=api_code) + api_code = request.headers.get("Authentication") + api_key = ApiKey.get_by(code=api_code) - if not api_key: + if not api_key: + # if user is authenticated, the request is authorized + if current_user.is_authenticated: + g.user = current_user + else: return jsonify(error="Wrong api key"), 401 - + else: # Update api key stats api_key.last_used = arrow.now() api_key.times += 1