Ajout contraintes
This commit is contained in:
+9
-3
@@ -1,6 +1,6 @@
|
||||
from datetime import datetime
|
||||
from flask import Flask, Blueprint, flash, render_template, request, url_for
|
||||
import ldap, ldap.filter, os
|
||||
import ldap, ldap.filter, os, re
|
||||
from app.exceptions import LoginNotFoundException, MultipleUsersFoundForLoginException
|
||||
from flask_migrate import Migrate
|
||||
from flask_mail import Mail, Message
|
||||
@@ -11,6 +11,10 @@ load_dotenv()
|
||||
f_app = Flask(__name__)
|
||||
f_app.secret_key = os.getenv("SECRET_KEY")
|
||||
|
||||
PASSWORD_PATTERN = re.compile(
|
||||
r"""[A-Za-z0-9@#$%^&*\-_=+\[\]{}|\\:',.?/`~"();<> ]{5,255}"""
|
||||
)
|
||||
|
||||
bp = Blueprint('mdp', __name__)
|
||||
|
||||
f_app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("DATABASE_URI")
|
||||
@@ -114,7 +118,9 @@ def password_reset_form(token: str = None):
|
||||
|
||||
if not newpassword:
|
||||
error = "Le champ 'mot de passe' ne peut pas être vide."
|
||||
|
||||
elif not PASSWORD_PATTERN.fullmatch(newpassword):
|
||||
error = "Le mot de passe ne respecte pas les contraintes."
|
||||
|
||||
if error is not None:
|
||||
flash(error)
|
||||
return render_template('pages/password_reset_form.html.j2')
|
||||
@@ -193,4 +199,4 @@ def ldap_set_password(user_dn: str, newpassword: str):
|
||||
conn.modify_s(user_dn, [(ldap.MOD_REPLACE, 'unicodePwd', ['"{0}"'.format(newpassword).encode('utf-16-le')])])
|
||||
|
||||
|
||||
f_app.register_blueprint(bp)
|
||||
f_app.register_blueprint(bp)
|
||||
|
||||
Reference in New Issue
Block a user