summaryrefslogtreecommitdiffstats
path: root/askbot/middleware/anon_user.py
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-09-21 00:27:17 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-09-21 00:27:17 -0300
commit03c0039a198ae82acac73cfffd9ede2dd3aa702c (patch)
treefc59e0c99520fc02981bfb450871b652dfc711f1 /askbot/middleware/anon_user.py
parent0d7897d9d5279e281b3dd54a6224a1e08c78cc58 (diff)
parent2e5cc2b5d9285325e57b780b4cb745538610c16d (diff)
downloadaskbot-03c0039a198ae82acac73cfffd9ede2dd3aa702c.tar.gz
askbot-03c0039a198ae82acac73cfffd9ede2dd3aa702c.tar.bz2
askbot-03c0039a198ae82acac73cfffd9ede2dd3aa702c.zip
merged fix by Rag Sagar so that anonymous user greeting shows just once
Diffstat (limited to 'askbot/middleware/anon_user.py')
-rw-r--r--askbot/middleware/anon_user.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/askbot/middleware/anon_user.py b/askbot/middleware/anon_user.py
index d6dd8b26..d1e223b7 100644
--- a/askbot/middleware/anon_user.py
+++ b/askbot/middleware/anon_user.py
@@ -35,14 +35,30 @@ class ConnectToSessionMessagesMiddleware(object):
def process_request(self, request):
if not request.user.is_authenticated():
#plug on deepcopy which may be called by django db "driver"
- request.user.__deepcopy__ = dummy_deepcopy
+ request.user.__deepcopy__ = dummy_deepcopy
#here request is linked to anon user
- request.user.message_set = AnonymousMessageManager(request)
+ request.user.message_set = AnonymousMessageManager(request)
request.user.get_and_delete_messages = \
request.user.message_set.get_and_delete
#also set the first greeting one time per session only
- if 'greeting_set' not in request.session:
+ if 'greeting_set' not in request.session and \
+ 'askbot_visitor' not in request.COOKIES:
request.session['greeting_set'] = True
msg = askbot_settings.GREETING_FOR_ANONYMOUS_USER
request.user.message_set.create(message=msg)
+
+ def process_response(self, request, response):
+ """ Adds the ``'askbot_visitor'``key to cookie if user ever authenticates so
+ that the anonymous user message won't be shown. """
+ if request.user.is_authenticated() and \
+ 'askbot_visitor' not in request.COOKIES :
+ #import datetime
+ #max_age = 365*24*60*60
+ #expires = datetime.datetime.strftime\
+ # (datetime.datetime.utcnow() +
+ # datetime.timedelta(seconds=max_age),\
+ # "%a, %d-%b-%Y %H:%M:%S GMT")
+ response.set_cookie('askbot_visitor', False)
+ return response
+