def record_request(self, visit): if identity.current.user: # if we are logged in, watch for the "remember" param, and set the # cookie if so. if cherrypy.request.params.pop("remember", None): vi = VisitIdentity.by_visit_key(visit.key) vi.expiry = remember(visit) else: # if we're not logged in, see if the cookie is there, and log in try: saved_key = cherrypy.request.simple_cookie[cookie_name].value vi = VisitIdentity.by_visit_key(saved_key) u = UserAcct.get(vi.user_id) identity.current_provider.validate_identity(u.user_name, u.password, visit.key) # must commit or db will forget we logged in, when we # redirect (rollback) below hub.commit() # reload, since now we're logged in turbogears.redirect(cherrypy.request.path) except (KeyError, SQLObjectNotFound): pass
def cleanup_db(): from model import VisitIdentity from turbogears.visit.sovisit import TG_Visit now = datetime.datetime.now() old_visits = TG_Visit.select(TG_Visit.q.expiry < now) for old_visit in old_visits: try: visit_identity = VisitIdentity.by_visit_key(old_visit.visit_key) if visit_identity.expiry == None or visit_identity.expiry < now: visit_identity.destroySelf() except SQLObjectNotFound: pass old_visit.destroySelf()