summaryrefslogtreecommitdiffstats
path: root/middleware/anon_user.py
diff options
context:
space:
mode:
authorroot <root@u15356270.onlinehome-server.com>2009-11-13 20:18:55 -0500
committerroot <root@u15356270.onlinehome-server.com>2009-11-13 20:31:40 -0500
commit7e4f1d542e00b4d3121da6ae5524e95867f2371b (patch)
tree5a3edfb81cc137dbc877f75f9bde80e9720b3ba0 /middleware/anon_user.py
parent3a4b6ad43221abc0e0ff345d9368c3348b312128 (diff)
downloadaskbot-7e4f1d542e00b4d3121da6ae5524e95867f2371b.tar.gz
askbot-7e4f1d542e00b4d3121da6ae5524e95867f2371b.tar.bz2
askbot-7e4f1d542e00b4d3121da6ae5524e95867f2371b.zip
better comments, email subscriptions, corrected view counter, some ie7 issues, wiki optional with settings.WIKI_ON, site can be mounted on arbitrary url prefix, english language improvements, added feedback form, versioned css and js files to force browser cache reload when settings.RESOURCE_REVISION is incremented , other fixes
Diffstat (limited to 'middleware/anon_user.py')
-rw-r--r--middleware/anon_user.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/middleware/anon_user.py b/middleware/anon_user.py
new file mode 100644
index 00000000..c7ff05bc
--- /dev/null
+++ b/middleware/anon_user.py
@@ -0,0 +1,26 @@
+from django.http import HttpResponseRedirect
+from django_authopenid.util import get_next_url
+from user_messages import create_message, get_and_delete_messages
+import logging
+
+class AnonymousMessageManager(object):
+ def __init__(self,request):
+ self.request = request
+ def create(self,message=''):
+ create_message(self.request,message)
+ def get_and_delete(self):
+ messages = get_and_delete_messages(self.request)
+ return messages
+
+def dummy_deepcopy(*arg):
+ """this is necessary to prevent deepcopy() on anonymous user object
+ that now contains reference to request, which cannot be deepcopied
+ """
+ return None
+
+class ConnectToSessionMessagesMiddleware(object):
+ def process_request(self, request):
+ if not request.user.is_authenticated():
+ request.user.__deepcopy__ = dummy_deepcopy #plug on deepcopy which may be called by django db "driver"
+ request.user.message_set = AnonymousMessageManager(request) #here request is linked to anon user
+ request.user.get_and_delete_messages = request.user.message_set.get_and_delete