summaryrefslogtreecommitdiffstats
path: root/funcweb
diff options
context:
space:
mode:
authorLuke Macken <lmacken@redhat.com>2008-02-20 10:43:00 -0500
committerLuke Macken <lmacken@redhat.com>2008-02-20 10:43:00 -0500
commitcbfb50ccc2fff8f71e7b1c521df991b4de18dc02 (patch)
tree25e35ac3fc7baf983f763cdda1de33d5116d19f3 /funcweb
parent0d07b2724bab4b73226e610b25e3dfc3de075742 (diff)
downloadthird_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.py51
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