make sure to not notify alias in HibpNotifiedAlias

This commit is contained in:
Son Nguyen Kim 2021-07-29 09:55:36 +02:00
parent 5821bd6512
commit 6c12b31060
1 changed files with 13 additions and 2 deletions

15
cron.py
View File

@ -56,6 +56,7 @@ from app.models import (
DeletedAlias,
DomainDeletedAlias,
Hibp,
HibpNotifiedAlias,
)
from app.utils import sanitize_email
from server import create_app
@ -271,7 +272,7 @@ def increase_percent(old, new) -> str:
return "N/A"
increase = (new - old) / old * 100
return f"{increase:.1f}%. Delta: {new-old}"
return f"{increase:.1f}%. Delta: {new - old}"
def bounce_report() -> List[Tuple[str, int]]:
@ -781,6 +782,7 @@ def notify_hibp():
db.session.query(Alias)
.options(joinedload(Alias.hibp_breaches))
.filter(Alias.hibp_breaches.any())
.filter(Alias.id.notin_(db.session.query(HibpNotifiedAlias.alias_id)))
.distinct(Alias.user_id)
.all()
)
@ -795,7 +797,11 @@ def notify_hibp():
.all()
)
LOG.d(f"Send new breaches found email to user {user}")
LOG.d(
f"Send new breaches found email to %s for %s breaches aliases",
user,
len(breached_aliases),
)
send_email(
user.email,
@ -812,6 +818,11 @@ def notify_hibp():
),
)
# add the breached aliases to HibpNotifiedAlias to avoid sending another email
for alias in breached_aliases:
HibpNotifiedAlias.create(user_id=user.id, alias_id=alias.id)
db.session.commit()
if __name__ == "__main__":
LOG.d("Start running cronjob")