Add user's last login to the session data
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user