diff options
author | Luke Macken <lmacken@redhat.com> | 2008-02-20 10:43:00 -0500 |
---|---|---|
committer | Luke Macken <lmacken@redhat.com> | 2008-02-20 10:43:00 -0500 |
commit | cbfb50ccc2fff8f71e7b1c521df991b4de18dc02 (patch) | |
tree | 25e35ac3fc7baf983f763cdda1de33d5116d19f3 /funcweb | |
parent | 0d07b2724bab4b73226e610b25e3dfc3de075742 (diff) | |
download | third_party-func-cbfb50ccc2fff8f71e7b1c521df991b4de18dc02.tar.gz third_party-func-cbfb50ccc2fff8f71e7b1c521df991b4de18dc02.tar.xz third_party-func-cbfb50ccc2fff8f71e7b1c521df991b4de18dc02.zip |
Dumb down our FuncWebVisitManager
Diffstat (limited to 'funcweb')
-rw-r--r-- | funcweb/funcweb/identity/visit.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/funcweb/funcweb/identity/visit.py b/funcweb/funcweb/identity/visit.py new file mode 100644 index 0000000..be3879e --- /dev/null +++ b/funcweb/funcweb/identity/visit.py @@ -0,0 +1,51 @@ +from datetime import datetime + +from sqlalchemy import * +from sqlalchemy.orm import class_mapper + +from turbogears import config +from turbogears.util import load_class +from turbogears.visit.api import BaseVisitManager, Visit +from turbogears.database import get_engine, metadata, session, mapper + +import logging +log = logging.getLogger(__name__) + + +class FuncWebVisitManager(BaseVisitManager): + + def __init__(self, timeout): + super(FuncWebVisitManager,self).__init__(timeout) + self.visits = {} + + def create_model(self): + pass + + def new_visit_with_key(self, visit_key): + log.debug("new_visit_with_key(%s)" % visit_key) + created = datetime.now() + visit = Visit(visit_key, True) + visit.visit_key = visit_key + visit.created = created + visit.expiry = created + self.timeout + self.visits[visit_key] = visit + log.debug("returning %s" % visit) + return visit + + def visit_for_key(self, visit_key): + ''' + Return the visit for this key or None if the visit doesn't exist or has + expired. + ''' + log.debug("visit_for_key(%s)" % visit_key) + if not self.visits.has_key(visit_key): + return None + visit = self.visits[visit_key] + if not visit: + return None + now = datetime.now(visit.expiry.tzinfo) + if visit.expiry < now: + return None + visit.is_new = False + log.debug("returning %s" % visit) + return visit |