diff --git a/app/auth/views/activate.py b/app/auth/views/activate.py index 520903f2..cacb8ab7 100644 --- a/app/auth/views/activate.py +++ b/app/auth/views/activate.py @@ -1,4 +1,3 @@ -import arrow from flask import request, redirect, url_for, flash, render_template from flask_login import login_user, current_user @@ -26,7 +25,7 @@ def activate(): 400, ) - if activation_code.expired and activation_code.expired < arrow.now(): + if activation_code.is_expired(): return ( render_template( "auth/activate.html", diff --git a/app/auth/views/register.py b/app/auth/views/register.py index 3cf30cb5..d33647e4 100644 --- a/app/auth/views/register.py +++ b/app/auth/views/register.py @@ -56,9 +56,7 @@ def register(): def send_activation_email(user, next_url): # the activation code is valid for 1h - activation = ActivationCode.create( - user_id=user.id, code=random_string(30), expired=arrow.now().shift(hours=1) - ) + activation = ActivationCode.create(user_id=user.id, code=random_string(30)) db.session.commit() # Send user activation email diff --git a/app/auth/views/reset_password.py b/app/auth/views/reset_password.py index 261f20a4..b9400fd9 100644 --- a/app/auth/views/reset_password.py +++ b/app/auth/views/reset_password.py @@ -32,7 +32,7 @@ def reset_password(): ) return render_template("auth/reset_password.html", form=form, error=error) - if reset_password_code.expired < arrow.now(): + if reset_password_code.is_expired(): error = ( "The link is already expired. Please make a new request to reset password" ) diff --git a/app/dashboard/views/setting.py b/app/dashboard/views/setting.py index 121c3f41..c0c1eebc 100644 --- a/app/dashboard/views/setting.py +++ b/app/dashboard/views/setting.py @@ -146,7 +146,7 @@ def send_reset_password_email(user): """ # the activation code is valid for 1h reset_password_code = ResetPasswordCode.create( - user_id=user.id, code=random_string(60), expired=arrow.now().shift(hours=1) + user_id=user.id, code=random_string(60) ) db.session.commit() diff --git a/app/models.py b/app/models.py index 384277d4..ad0bf4f3 100644 --- a/app/models.py +++ b/app/models.py @@ -251,7 +251,10 @@ class ActivationCode(db.Model, ModelMixin): user = db.relationship(User) - expired = db.Column(ArrowType, default=_expiration_1h) + expired = db.Column(ArrowType, nullable=False, default=_expiration_1h) + + def is_expired(self): + return self.expired < arrow.now() class ResetPasswordCode(db.Model, ModelMixin): @@ -264,6 +267,9 @@ class ResetPasswordCode(db.Model, ModelMixin): expired = db.Column(ArrowType, nullable=False, default=_expiration_1h) + def is_expired(self): + return self.expired < arrow.now() + class Partner(db.Model, ModelMixin): email = db.Column(db.String(128))