aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Sloan2014-02-25 22:24:52 +0000
committerZachary Sloan2014-02-25 22:24:52 +0000
commit16672f2b8d486ea5ec6b460a2436043610996b01 (patch)
tree5adb7595283d80f5930ca7586794703c13a77766
parentf4f4b8a0badba231a72ab41d86d87408c871ac1b (diff)
downloadgenenetwork2-16672f2b8d486ea5ec6b460a2436043610996b01.tar.gz
Committing part-way through getting anonymous collections working
-rw-r--r--wqflask/wqflask/static/new/javascript/marker_regression.coffee7
-rw-r--r--wqflask/wqflask/templates/collections/add_anonymous.html5
-rw-r--r--wqflask/wqflask/user_manager.py38
3 files changed, 36 insertions, 14 deletions
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.coffee b/wqflask/wqflask/static/new/javascript/marker_regression.coffee
index 3f8fbe0d..091dab93 100644
--- a/wqflask/wqflask/static/new/javascript/marker_regression.coffee
+++ b/wqflask/wqflask/static/new/javascript/marker_regression.coffee
@@ -253,9 +253,8 @@ class Manhattan_Plot
.attr("transform", (d) =>
return "translate(-12,0) rotate(-90)"
)
- #.attr("dy", "-1.0em")
-
-
+ #.attr("dy", "-1.0em")
+
add_y_axis: () ->
@yAxis = d3.svg.axis()
.scale(@y_scale)
@@ -266,7 +265,7 @@ class Manhattan_Plot
.attr("class", "y_axis")
.attr("transform", "translate(" + @x_buffer + ",0)")
.call(@yAxis)
-
+
add_axis_labels: () ->
@svg.append("text")
.attr("transform","rotate(-90)")
diff --git a/wqflask/wqflask/templates/collections/add_anonymous.html b/wqflask/wqflask/templates/collections/add_anonymous.html
index 9259f667..2eb7525f 100644
--- a/wqflask/wqflask/templates/collections/add_anonymous.html
+++ b/wqflask/wqflask/templates/collections/add_anonymous.html
@@ -10,9 +10,8 @@
<div class="modal-body">
<form action="/collections/new" data-validate="parsley" id="add_form">
<input type="hidden" name="traits" value="{{ traits }}" />
- <button type="submit" name="Default" class="btn btn-large btn-block btn-primary">Continue without signing in</button>
- <button type="submit" name="create_new" class="btn btn-large btn-block">Sign in or create an account</button>
-
+ <button type="submit" name="anonymous_add" class="btn btn-large btn-block btn-primary">Continue without signing in</button>
+ <button type="submit" name="sign_in" class="btn btn-large btn-block">Sign in or create an account</button>
</form>
</div>
</div>
diff --git a/wqflask/wqflask/user_manager.py b/wqflask/wqflask/user_manager.py
index ff4535bb..a80dff3b 100644
--- a/wqflask/wqflask/user_manager.py
+++ b/wqflask/wqflask/user_manager.py
@@ -44,7 +44,7 @@ from wqflask.database import db_session
from wqflask import model
-from utility import Bunch, Struct
+from utility import Bunch, Struct, after
@@ -57,8 +57,34 @@ def timestamp():
return datetime.datetime.utcnow().isoformat()
+class AnonUser(object):
+ cookie_name = 'anon_user_v1'
+
+ def __init__(self):
+ self.cookie = request.cookies.get(self.cookie_name)
+ if self.cookie:
+ self.anon_id = verify_cookie(cookie)
+ else:
+ self.anon_id, self.cookie = create_signed_cookie()
+ after.set_cookie(self.cookie_name, self.cookie)
+
+
+
+def verify_cookie(cookie):
+ the_uuid, separator, the_signature = cookie.partition(':')
+ assert len(the_uuid) == 36, "Is session_id a uuid?"
+ assert separator == ":", "Expected a : here"
+ assert the_signature == actual_hmac_creation(the_uuid), "Uh-oh, someone tampering with the cookie?"
+ return the_uuid
+def create_signed_cookie():
+ the_uuid = str(uuid.uuid4())
+ signature = actual_hmac_creation(the_uuid)
+ uuid_signed = the_id + ":" + signature
+ print("uuid_signed:", uuid_signed)
+ return the_uuid, uuid_signed
+
class UserSession(object):
cookie_name = 'session_id_v2'
@@ -68,10 +94,8 @@ class UserSession(object):
self.logged_in = False
return
else:
- session_id, separator, session_id_signature = cookie.partition(':')
- assert len(session_id) == 36, "Is session_id a uuid?"
- assert separator == ":", "Expected a : here"
- assert session_id_signature == actual_hmac_creation(session_id), "Uh-oh, someone tampering with the cookie?"
+ session_id = verify_cookie(cookie)
+
self.redis_key = self.cookie_name + ":" + session_id
print("self.redis_key is:", self.redis_key)
self.session_id = session_id
@@ -90,8 +114,8 @@ class UserSession(object):
#flash(
# "Due to inactivity your session has expired. If you'd like please login again.")
#return response
- return
-
+ return
+
if Redis.ttl(self.redis_key) < THREE_DAYS:
# (Almost) everytime the user does something we extend the session_id in Redis...
print("Extending ttl...")