Files
flask-security/flask_security/recoverable.py
T

35 lines
920 B
Python

from datetime import datetime, timedelta
from flask import current_app
from flask.ext.security.utils import generate_token
def reset_password_period_valid(user):
sent_at = user.reset_password_sent_at
reset_within = int(current_app.security.reset_password_within)
days_ago = datetime.utcnow() - timedelta(days=reset_within)
return (sent_at is not None) and \
(sent_at >= days_ago)
def generate_reset_password_token(user):
user.reset_password_token = generate_token()
user.reset_password_sent_at = datetime.utcnow()
current_app.security.datastore._save_model(user)
def clear_reset_password_token(user):
user.reset_password_token = None
user.reset_password_sent_at = None
def send_reset_password_instructions():
pass
def should_generate_reset_token(user):
return (user.reset_password_token is None) or \
(not reset_password_period_valid(user))