diff --git a/cps/error_handler.py b/cps/error_handler.py index 0df983329..54942ec22 100644 --- a/cps/error_handler.py +++ b/cps/error_handler.py @@ -33,6 +33,7 @@ log = logger.create() # custom error page def error_http(error): + headers = {'WWW-Authenticate': 'Basic realm="calibre-web"'} if error.code == 401 else {} return render_template('http_error.html', error_code="Error {0}".format(error.code), error_name=error.name, @@ -40,7 +41,7 @@ def error_http(error): goto_admin=False, unconfigured=not config.db_configured, instance=config.config_calibre_web_title - ), error.code + ), error.code, headers def internal_error(error): diff --git a/cps/opds.py b/cps/opds.py index e8a405116..c5be8cd8d 100644 --- a/cps/opds.py +++ b/cps/opds.py @@ -21,7 +21,6 @@ # along with this program. If not, see . import datetime -# import json from urllib.parse import unquote_plus from flask import Blueprint, request, render_template, make_response, abort, g, jsonify @@ -439,6 +438,7 @@ def feed_shelf(book_id): @opds.route("/opds/download///") @requires_basic_auth_if_no_ano def opds_download_link(book_id, book_format): + return abort(401) if not auth.current_user().role_download(): return abort(401) client = "kobo" if "Kobo" in request.headers.get('User-Agent') else ""