2021-10-28 13:24:34 +00:00
|
|
|
from flask import Blueprint, current_app, url_for
|
|
|
|
from flask_themer import render_template
|
2020-12-10 15:34:46 +00:00
|
|
|
from flask_babel import gettext as _
|
2020-10-29 11:00:19 +00:00
|
|
|
from canaille.flaskutils import admin_needed
|
2021-01-22 17:26:53 +00:00
|
|
|
from canaille.mails import profile_hash
|
2020-10-29 11:00:19 +00:00
|
|
|
|
|
|
|
|
2021-05-24 15:43:15 +00:00
|
|
|
bp = Blueprint("admin_mails", __name__)
|
2020-10-29 11:00:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
@bp.route("/reset.html")
|
|
|
|
@admin_needed()
|
|
|
|
def reset_html(user):
|
2021-05-24 15:43:15 +00:00
|
|
|
base_url = url_for("account.index", _external=True)
|
2020-10-29 12:20:27 +00:00
|
|
|
reset_url = url_for(
|
2021-05-24 15:43:15 +00:00
|
|
|
"account.reset",
|
2020-10-29 11:00:19 +00:00
|
|
|
uid=user.uid[0],
|
2021-11-30 13:56:39 +00:00
|
|
|
hash=profile_hash(user.uid[0], user.mail[0], user.userPassword[0]),
|
2020-10-29 12:20:27 +00:00
|
|
|
_external=True,
|
|
|
|
)
|
2020-10-29 11:00:19 +00:00
|
|
|
|
|
|
|
return render_template(
|
|
|
|
"mail/reset.html",
|
|
|
|
site_name=current_app.config.get("NAME", reset_url),
|
2020-10-29 12:20:27 +00:00
|
|
|
site_url=base_url,
|
2020-10-29 11:00:19 +00:00
|
|
|
reset_url=reset_url,
|
2020-12-10 16:42:58 +00:00
|
|
|
logo=current_app.config.get("LOGO"),
|
2020-12-10 15:34:46 +00:00
|
|
|
title=_("Password reset on {website_name}").format(
|
|
|
|
website_name=current_app.config.get("NAME", reset_url)
|
|
|
|
),
|
2020-10-29 11:00:19 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@bp.route("/reset.txt")
|
|
|
|
@admin_needed()
|
|
|
|
def reset_txt(user):
|
2021-05-24 15:43:15 +00:00
|
|
|
base_url = url_for("account.index", _external=True)
|
2020-10-29 12:20:27 +00:00
|
|
|
reset_url = url_for(
|
2021-05-24 15:43:15 +00:00
|
|
|
"account.reset",
|
2020-10-29 11:00:19 +00:00
|
|
|
uid=user.uid[0],
|
2021-11-30 13:56:39 +00:00
|
|
|
hash=profile_hash(user.uid[0], user.mail[0], user.userPassword[0]),
|
2020-10-29 12:20:27 +00:00
|
|
|
_external=True,
|
|
|
|
)
|
2020-10-29 11:00:19 +00:00
|
|
|
|
|
|
|
return render_template(
|
|
|
|
"mail/reset.txt",
|
|
|
|
site_name=current_app.config.get("NAME", reset_url),
|
2020-10-29 12:20:27 +00:00
|
|
|
site_url=current_app.config.get("SERVER_NAME", base_url),
|
2020-10-29 11:00:19 +00:00
|
|
|
reset_url=reset_url,
|
|
|
|
)
|