Add missing code to remotelogin.py patch
All checks were successful
Build and Push Docker Image / build (push) Successful in 5m8s
All checks were successful
Build and Push Docker Image / build (push) Successful in 5m8s
This commit is contained in:
@@ -107,7 +107,7 @@ RUN echo "**** build & install calibre-web ****" 1>&2 \
|
|||||||
-r requirements.txt \
|
-r requirements.txt \
|
||||||
-r optional-requirements.txt
|
-r optional-requirements.txt
|
||||||
|
|
||||||
run echo "**** copy unrar and kepubify to app folder ****" 1>&2 \
|
RUN echo "**** copy unrar and kepubify to app folder ****" 1>&2 \
|
||||||
&& mv /usr/bin/unrar /app/bin \
|
&& mv /usr/bin/unrar /app/bin \
|
||||||
&& mv ./root/go/bin/kepubify /app/bin
|
&& mv ./root/go/bin/kepubify /app/bin
|
||||||
|
|
||||||
@@ -153,6 +153,7 @@ RUN \
|
|||||||
&& apt install -y imagemagick \
|
&& apt install -y imagemagick \
|
||||||
&& apt install -y bash \
|
&& apt install -y bash \
|
||||||
&& apt install -y procps \
|
&& apt install -y procps \
|
||||||
|
&& apt install -y vim \
|
||||||
&& apt install -y python3
|
&& apt install -y python3
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,73 @@
|
|||||||
*** cps/remotelogin.py Thu Dec 26 10:33:32 2024
|
*** remotelogin.py.ori Fri Dec 27 19:50:57 2024
|
||||||
--- ../calibre-web/cps/remotelogin.py Thu Dec 26 10:32:13 2024
|
--- remotelogin.py Fri Dec 27 20:05:34 2024
|
||||||
***************
|
***************
|
||||||
*** 33,38 ****
|
*** 33,38 ****
|
||||||
--- 33,47 ----
|
--- 33,41 ----
|
||||||
from .render_template import render_title_template
|
from .render_template import render_title_template
|
||||||
from .usermanagement import user_login_required
|
from .usermanagement import user_login_required
|
||||||
|
|
||||||
+ try:
|
+ remotelogin = Blueprint('remotelogin', __name__)
|
||||||
+ import qrcode
|
+ log = logger.create()
|
||||||
+ from base64 import b64encode
|
+
|
||||||
+ from base64 import b64encode
|
try:
|
||||||
+ from io import BytesIO
|
import qrcode
|
||||||
+ from flask import send_file
|
from base64 import b64encode
|
||||||
+ has_qrcode = True
|
|
||||||
+ except ImportError:
|
|
||||||
+ has_qrcode = False
|
|
||||||
|
|
||||||
remotelogin = Blueprint('remotelogin', __name__)
|
|
||||||
log = logger.create()
|
|
||||||
***************
|
***************
|
||||||
*** 59,64 ****
|
*** 40,51 ****
|
||||||
--- 68,87 ----
|
from io import BytesIO
|
||||||
ub.session.add(auth_token)
|
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
|
||||||
|
+ log.info("Magic Link QRCode is enabled")
|
||||||
|
except ImportError:
|
||||||
|
has_qrcode = False
|
||||||
|
! log.info("QRCode is not available")
|
||||||
|
|
||||||
|
def remote_login_required(f):
|
||||||
|
@wraps(f)
|
||||||
|
***************
|
||||||
|
*** 69,74 ****
|
||||||
|
--- 70,76 ----
|
||||||
ub.session_commit()
|
ub.session_commit()
|
||||||
verify_url = url_for('remotelogin.verify_token', token=auth_token.auth_token, _external=true)
|
verify_url = url_for('remotelogin.verify_token', token=auth_token.auth_token, _external=true)
|
||||||
+ if has_qrcode:
|
if has_qrcode:
|
||||||
+ qr = qrcode.QRCode(version=1,
|
+ log.debug("Building the QRCode for magik link")
|
||||||
+ error_correction=qrcode.constants.ERROR_CORRECT_H,
|
qr = qrcode.QRCode(version=1,
|
||||||
+ box_size=5,
|
error_correction=qrcode.constants.ERROR_CORRECT_H,
|
||||||
+ border=4,
|
box_size=5,
|
||||||
+ )
|
***************
|
||||||
+ qr.add_data(verify_url)
|
*** 83,90 ****
|
||||||
+ qr.make(fit=True)
|
else:
|
||||||
+ img = qr.make_image()
|
qrcode_url = ""
|
||||||
+ 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)
|
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,
|
! return render_title_template('remote_login.html', title=_("Login"), token=auth_token.auth_token,
|
||||||
verify_url=verify_url, page="remotelogin")
|
! verify_url=verify_url, page="remotelogin")
|
||||||
|
|
||||||
|
|
||||||
|
@remotelogin.route('/verify/<token>')
|
||||||
|
--- 85,97 ----
|
||||||
|
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",
|
||||||
|
! qrcode=qrcode,
|
||||||
|
! qrcode_url=qrcode_url)
|
||||||
|
|
||||||
|
|
||||||
|
@remotelogin.route('/verify/<token>')
|
||||||
|
|||||||
Reference in New Issue
Block a user