Fixed an issue that prevented the password reset tokens from working. Added email templates for password reset success and new account creation. Added more dynamic email template support.
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import typing as t
|
|
import warnings
|
|
|
|
from blinker import Namespace
|
|
|
|
# This namespace is only for signals provided by Flask itself.
|
|
_signals = Namespace()
|
|
|
|
template_rendered = _signals.signal("template-rendered")
|
|
before_render_template = _signals.signal("before-render-template")
|
|
request_started = _signals.signal("request-started")
|
|
request_finished = _signals.signal("request-finished")
|
|
request_tearing_down = _signals.signal("request-tearing-down")
|
|
got_request_exception = _signals.signal("got-request-exception")
|
|
appcontext_tearing_down = _signals.signal("appcontext-tearing-down")
|
|
appcontext_pushed = _signals.signal("appcontext-pushed")
|
|
appcontext_popped = _signals.signal("appcontext-popped")
|
|
message_flashed = _signals.signal("message-flashed")
|
|
|
|
|
|
def __getattr__(name: str) -> t.Any:
|
|
if name == "signals_available":
|
|
warnings.warn(
|
|
"The 'signals_available' attribute is deprecated and will be removed in"
|
|
" Flask 2.4. Signals are always available.",
|
|
DeprecationWarning,
|
|
stacklevel=2,
|
|
)
|
|
return True
|
|
|
|
raise AttributeError(name)
|