Add user's last login to the session data

This commit is contained in:
leigh-mil
2019-04-01 14:06:44 -04:00
parent dec3a0eb48
commit 610aef428d
7 changed files with 57 additions and 9 deletions

View File

@@ -22,6 +22,8 @@ def apply_authentication(app):
user = get_current_user()
if user:
g.current_user = user
g.last_login = get_last_login()
if should_redirect_to_user_profile(request, user):
return redirect(url_for("users.user", next=request.path))
elif not _unprotected_route(request):
@@ -50,9 +52,18 @@ def get_current_user():
return False
def get_last_login():
last_login = session.get("last_login")
if last_login and session.get("user_id"):
return last_login
else:
return False
def logout():
if session.get("user_id"): # pragma: no branch
del session["user_id"]
del session["last_login"]
def _unprotected_route(request):

View File

@@ -1,5 +1,6 @@
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.exc import IntegrityError
from datetime import datetime
from atst.database import db
from atst.models import User
@@ -82,6 +83,12 @@ class Users(object):
return user
@classmethod
def update_last_login(cls, user):
setattr(user, "last_login", datetime.now())
db.session.add(user)
db.session.commit()
@classmethod
def finalize(cls, user):
user.provisional = False