From f6be831be1f602439b362c0ebe11550c3d026392 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Fri, 27 Dec 2024 20:37:59 +0100 Subject: [PATCH] With the good patch --- patches/calibre-web/remote_login_py.patch | 98 +++++++++++------------ 1 file changed, 45 insertions(+), 53 deletions(-) diff --git a/patches/calibre-web/remote_login_py.patch b/patches/calibre-web/remote_login_py.patch index b178f38..4f979e8 100644 --- a/patches/calibre-web/remote_login_py.patch +++ b/patches/calibre-web/remote_login_py.patch @@ -1,65 +1,56 @@ -*** remotelogin.py.ori Fri Dec 27 19:50:57 2024 ---- remotelogin.py Fri Dec 27 20:05:34 2024 +*** cps/remotelogin.py 2024-12-27 20:25:22.346404564 +0100 +--- cps/remotelogin.py 2024-12-27 20:30:22.693992691 +0100 *************** -*** 33,38 **** ---- 33,41 ---- - from .render_template import render_title_template - from .usermanagement import user_login_required - -+ remotelogin = Blueprint('remotelogin', __name__) -+ log = logger.create() -+ - try: - import qrcode - from base64 import b64encode -*************** -*** 40,51 **** - from io import BytesIO - from flask import send_file - has_qrcode = True - except ImportError: - has_qrcode = False -! -! remotelogin = Blueprint('remotelogin', __name__) -! log = logger.create() -! - - def remote_login_required(f): - @wraps(f) ---- 43,52 ---- - from io import BytesIO - from flask import send_file - has_qrcode = True +*** 37,42 **** +--- 37,54 ---- + remotelogin = Blueprint('remotelogin', __name__) + log = logger.create() + ++ try: ++ import qrcode ++ from base64 import b64encode ++ from base64 import b64encode ++ from io import BytesIO ++ from flask import send_file ++ has_qrcode = True + log.info("Magic Link QRCode is enabled") - except ImportError: - has_qrcode = False -! log.info("QRCode is not available") - ++ except ImportError: ++ has_qrcode = False ++ log.info("Magic Link QRCode is not available") ++ + def remote_login_required(f): @wraps(f) *************** -*** 69,74 **** ---- 70,76 ---- +*** 59,67 **** + ub.session.add(auth_token) ub.session_commit() verify_url = url_for('remotelogin.verify_token', token=auth_token.auth_token, _external=true) - if has_qrcode: -+ log.debug("Building the QRCode for magik link") - qr = qrcode.QRCode(version=1, - error_correction=qrcode.constants.ERROR_CORRECT_H, - box_size=5, -*************** -*** 83,90 **** - else: - qrcode_url = "" log.debug("Remot Login request with token: %s", auth_token.auth_token) ! return render_title_template('remote_login.html', title=_("Login"), token=auth_token.auth_token, ! verify_url=verify_url, page="remotelogin") - - + + @remotelogin.route('/verify/') ---- 85,97 ---- - else: - qrcode_url = "" +--- 71,100 ---- + ub.session.add(auth_token) + ub.session_commit() + verify_url = url_for('remotelogin.verify_token', token=auth_token.auth_token, _external=true) ++ if has_qrcode: ++ log.debug("Building the QRCode for magik link") ++ qr = qrcode.QRCode(version=1, ++ error_correction=qrcode.constants.ERROR_CORRECT_H, ++ box_size=5, ++ border=4, ++ ) ++ qr.add_data(verify_url) ++ qr.make(fit=True) ++ img = qr.make_image() ++ img_buf = BytesIO() ++ img.save(img_buf,format = 'jpeg') ++ qrcode_url = "data:image/jpeg;base64, %s" % b64encode(img_buf.getvalue()).decode() ++ else: ++ qrcode_url = "" log.debug("Remot Login request with token: %s", auth_token.auth_token) ! return render_title_template('remote_login.html', ! title=_("Login"), @@ -68,6 +59,7 @@ ! page="remotelogin", ! qrcode=qrcode, ! qrcode_url=qrcode_url) - - +! + + @remotelogin.route('/verify/')