diff --git a/changedetectionio/api/auth.py b/changedetectionio/api/auth.py index 9f4c3b19..64e8dbb1 100644 --- a/changedetectionio/api/auth.py +++ b/changedetectionio/api/auth.py @@ -11,24 +11,14 @@ def check_token(f): datastore = args[0].datastore config_api_token_enabled = datastore.data['settings']['application'].get('api_access_token_enabled') - if not config_api_token_enabled: - return make_response( - jsonify("API Access is disabled"), 403 - ) - - try: - api_key_header = request.headers['x-api-key'] - except KeyError: - return make_response( - jsonify("No authorization x-api-key header."), 403 - ) - config_api_token = datastore.data['settings']['application'].get('api_access_token') - if api_key_header != config_api_token: - return make_response( - jsonify("Invalid access - API key invalid."), 403 - ) + # config_api_token_enabled - a UI option in settings if access should obey the key or not + if config_api_token_enabled: + if request.headers.get('x-api-key') != config_api_token: + return make_response( + jsonify("Invalid access - API key invalid."), 403 + ) return f(*args, **kwargs) diff --git a/changedetectionio/tests/test_api.py b/changedetectionio/tests/test_api.py index e05f96d7..d57d5bac 100644 --- a/changedetectionio/tests/test_api.py +++ b/changedetectionio/tests/test_api.py @@ -65,8 +65,7 @@ def test_api_simple(client, live_server, measure_memory_usage): set_original_response() # Validate bad URL - test_url = url_for('test_endpoint', _external=True, - headers={'x-api-key': api_key}, ) + test_url = url_for('test_endpoint', _external=True ) res = client.post( url_for("createwatch"), data=json.dumps({"url": "h://xxxxxxxxxom"}), @@ -297,8 +296,7 @@ def test_api_watch_PUT_update(client, live_server, measure_memory_usage): # Create a watch set_original_response() - test_url = url_for('test_endpoint', _external=True, - headers={'x-api-key': api_key}, ) + test_url = url_for('test_endpoint', _external=True) # Create new res = client.post(