1
0
mirror of https://github.com/janeczku/calibre-web synced 2025-10-12 22:27:41 +00:00

Improved js password strength check

Improved check of CJK-Characters
This commit is contained in:
Ozzie Isaacs
2024-02-29 08:23:18 +01:00
parent f987fb0aba
commit c901ccbb01
12 changed files with 55 additions and 44 deletions

View File

@@ -22,6 +22,7 @@ import random
import io
import mimetypes
import re
import regex
import shutil
import socket
from datetime import datetime, timedelta
@@ -54,7 +55,8 @@ from . import calibre_db, cli_param
from .tasks.convert import TaskConvert
from . import logger, config, db, ub, fs
from . import gdriveutils as gd
from .constants import STATIC_DIR as _STATIC_DIR, CACHE_TYPE_THUMBNAILS, THUMBNAIL_TYPE_COVER, THUMBNAIL_TYPE_SERIES, SUPPORTED_CALIBRE_BINARIES
from .constants import (STATIC_DIR as _STATIC_DIR, CACHE_TYPE_THUMBNAILS, THUMBNAIL_TYPE_COVER, THUMBNAIL_TYPE_SERIES,
SUPPORTED_CALIBRE_BINARIES)
from .subproc_wrapper import process_wait
from .services.worker import WorkerThread
from .tasks.mail import TaskEmail
@@ -694,14 +696,16 @@ def valid_password(check_password):
if config.config_password_min_length > 0:
verify += r"^(?=.{" + str(config.config_password_min_length) + ",}$)"
if config.config_password_number:
verify += r"(?=.*?\d)"
verify += "(?=.*?\d)"
if config.config_password_lower:
verify += r"(?=.*?[a-z])"
verify += "(?=.*?[\p{Ll}])"
if config.config_password_upper:
verify += r"(?=.*?[A-Z])"
verify += "(?=.*?[\p{Lu}])"
if config.config_password_character:
verify += "(?=.*?[\p{Letter}])"
if config.config_password_special:
verify += r"(?=.*?[^A-Za-z\s0-9])"
match = re.match(verify, unidecode.unidecode(check_password))
verify += "(?=.*?[^\p{Letter}\s0-9])"
match = regex.match(verify, check_password)
if not match:
raise Exception(_("Password doesn't comply with password validation rules"))
return check_password