summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurélien Bompard <aurelien@bompard.org>2014-01-10 08:56:54 +0100
committerAurélien Bompard <aurelien@bompard.org>2014-01-10 08:56:54 +0100
commitb89c1e927cf177768f56cc7ab4b4306a7bdb529c (patch)
tree9a6ed2fed85430a7f9032c5597001acbad8f6384
parentb78e4f39cce3db553f856f293f2660c87a007e9e (diff)
downloadhyperkitty-WIP.tar.gz
hyperkitty-WIP.tar.xz
hyperkitty-WIP.zip
WIPWIP
-rw-r--r--hyperkitty/middleware.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/hyperkitty/middleware.py b/hyperkitty/middleware.py
index 59bd3af..2a8fb77 100644
--- a/hyperkitty/middleware.py
+++ b/hyperkitty/middleware.py
@@ -156,7 +156,7 @@ class MailmanUserMetadata(object):
return
if not request.user.email:
return # Can this really happen?
- if self.session_key in request.session:
+ if "subscribed" in request.session and "user_id" in request.session:
return # Already set
client = MailmanClient('%s/3.0' %
settings.MAILMAN_REST_SERVER,
@@ -164,7 +164,13 @@ class MailmanUserMetadata(object):
settings.MAILMAN_API_PASS)
try:
user = client.get_user(request.user.email)
- except (MailmanConnectionError, HTTPError):
+ except MailmanConnectionError:
return
- request.session[self.session_key] = \
+ except HTTPError, err:
+ if err.code == 404:
+ user = client.create_user(request.user.email,"")
+ else:
+ return
+ request.session["user_id"] = user.user_id
+ request.session["subscribed"] = \
[ s.address for s in user.subscriptions ]