update user.last_activity whenever we see activity on API tokens / cookies

This commit is contained in:
Min RK
2018-02-22 15:43:56 +01:00
parent b26b1bc038
commit 3e7d0dbd23
2 changed files with 15 additions and 4 deletions

View File

@@ -24,7 +24,11 @@ class TokenAPIHandler(APIHandler):
orm_token = orm.OAuthAccessToken.find(self.db, token)
if orm_token is None:
raise web.HTTPError(404)
# record activity whenever we see a token
now = orm_token.last_activity = datetime.utcnow()
if orm_token.user:
orm_token.user.last_activity = now
model = self.user_model(self.users[orm_token.user])
elif orm_token.service:
model = self.service_model(orm_token.service)
@@ -33,8 +37,6 @@ class TokenAPIHandler(APIHandler):
self.db.delete(orm_token)
self.db.commit()
raise web.HTTPError(404)
# record activity whenever we see a token
orm_token.last_activity = datetime.utcnow()
self.db.commit()
self.write(json.dumps(model))

View File

@@ -191,7 +191,8 @@ class BaseHandler(RequestHandler):
if orm_token is None:
return None
else:
orm_token.last_activity = datetime.utcnow()
orm_token.last_activity = \
orm_token.user.last_activity = datetime.utcnow()
self.db.commit()
return self._user_from_orm(orm_token.user)
@@ -205,7 +206,11 @@ class BaseHandler(RequestHandler):
return None
else:
# record token activity
orm_token.last_activity = datetime.utcnow()
now = datetime.utcnow()
orm_token.last_activity = now
if orm_token.user:
orm_token.user.last_activity = now
self.db.commit()
return orm_token.service or self._user_from_orm(orm_token.user)
@@ -231,6 +236,10 @@ class BaseHandler(RequestHandler):
self.log.warning("Invalid cookie token")
# have cookie, but it's not valid. Clear it and start over.
clear()
return
# update user activity
user.last_activity = datetime.utcnow()
self.db.commit()
return user
def _user_from_orm(self, orm_user):