This commit is contained in:
Jean-Marie Place 2021-10-20 06:22:13 +02:00
parent 89f562a2e7
commit 952cc3006b
3 changed files with 40 additions and 14 deletions

View File

@ -30,11 +30,11 @@ processes_re = re.compile(r"\.(.*)\+([0-9]*)@(.*)")
def is_disabled_email_addr(email: str) -> bool:
""" Indique si un email a été transformé
"""Indique si un email a été transformé
:param email: l'adresse mail testée
:return: True si l'adresse a été transformée
"""
return email[0] == '.'
return email[0] == "."
def disable_email_addr(email: str, rang: int) -> str:
@ -51,7 +51,9 @@ def disable_email_addr(email: str, rang: int) -> str:
raise ScoValueError("Tentative de traitement d'une adresse déjà traitée")
decomposition = initial_re.match(email)
if decomposition is None: # adresse mail non conforme
raise ScoValueError("tentative de traitement de l\'adresse email non reconnue '%s' % email")
raise ScoValueError(
"tentative de traitement de l'adresse email non reconnue '%s' % email"
)
return ".%s+%s@%s" % (decomposition.group(1), rang, decomposition.group(2))
@ -63,7 +65,10 @@ def initial_email_address(email) -> (str, int):
:return: l'adresse email initiale et le rang
"""
if not is_disabled_email_addr(email):
return email, 1 # l'adresse n'a pas été transformée. on la retourne à l'identique (avec l'indice 1)
return (
email,
1,
) # l'adresse n'a pas été transformée. on la retourne à l'identique (avec l'indice 1)
decomposition = processes_re.match(email)
if decomposition is None: # l'adresse a été transformée mais n'est pas reconnue
raise ScoValueError("Adresse mail transformée non reconnue'%s'" % email)

View File

@ -38,7 +38,9 @@ def login():
user = User.query.filter_by(user_name=form.user_name.data).first()
if user is None or not user.check_password(form.password.data):
if user and is_disabled_email_addr(user.email):
current_app.logger.info("login: compte invalidé (email doublonné) (%s)", form.user_name.data)
current_app.logger.info(
"login: compte invalidé (email doublonné) (%s)", form.user_name.data
)
flash(_("compte invalidé pour conflit d'adresse email"))
return redirect(url_for("auth.login"))
else:

View File

@ -129,14 +129,27 @@ def index_html(all_depts=False, with_inactives=False, format="html"):
LIB_NO_MAIL = "** email non renseigné **"
def _explications(nbre_emails, nbre_comptes, nbre_comptes_inactifs, nbre_comptes_desactives):
def _explications(
nbre_emails, nbre_comptes, nbre_comptes_inactifs, nbre_comptes_desactives
):
html = []
html.append("<p>Certains comptes partagent les même adresses emails ou 'ont pas d'adresses.<br/>"
" Pour garantir l'unicité des adresses nous vous proposont de désactiver certains de ces comptes. </p>")
html.append(
"<p>Certains comptes partagent les même adresses emails ou 'ont pas d'adresses.<br/>"
" Pour garantir l'unicité des adresses nous vous proposont de désactiver certains de ces comptes. </p>"
)
html.append("<p>Nombre d'adresses' concernées: %s</p>" % nbre_emails)
html.append("<p>Nombre de comptes concernés: %s</p>" % nbre_comptes)
html.append("<p>Nombre de comptes actifs parmi les concernés: %s</p>" % (nbre_comptes - nbre_comptes_inactifs))
html.append(("<p>Nombre de comptes desactivés parmi les comptes actifs: %s" % nbre_comptes_desactives))
html.append(
"<p>Nombre de comptes actifs parmi les concernés: %s</p>"
% (nbre_comptes - nbre_comptes_inactifs)
)
html.append(
(
"<p>Nombre de comptes desactivés parmi les comptes actifs: %s"
% nbre_comptes_desactives
)
)
return html
@ -162,7 +175,10 @@ def _tables_anomalies(email_doublon, bilan):
else:
keep = False
if rang == 1:
row_start = "<tr'><th rowspan='%s'>%s</th>" % (len(bilan[initial]), initial)
row_start = "<tr'><th rowspan='%s'>%s</th>" % (
len(bilan[initial]),
initial,
)
else:
row_start = "<tr>"
if keep:
@ -202,11 +218,14 @@ def stats_users(dept=None, all_depts=True, with_inactives=False):
nbre_emails = len(email_doublon)
nbre_comptes = sum([len(bilan[email]) for email in email_doublon])
if len(email_doublon) > 0:
table, nbre_comptes_inactifs, nbre_comptes_desactives = _tables_anomalies(email_doublon, bilan)
table, nbre_comptes_inactifs, nbre_comptes_desactives = _tables_anomalies(
email_doublon, bilan
)
H += table
nbre_comptes_actifs = nbre_comptes -+ nbre_comptes_inactifs
nbre_comptes_actifs = nbre_comptes - +nbre_comptes_inactifs
H += _explications(
nbre_emails=nbre_emails, nbre_comptes=nbre_comptes,
nbre_emails=nbre_emails,
nbre_comptes=nbre_comptes,
nbre_comptes_inactifs=nbre_comptes_inactifs,
nbre_comptes_desactives=nbre_comptes_desactives,
)