diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2011-09-21 00:27:17 -0300 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2011-09-21 00:27:17 -0300 |
commit | 03c0039a198ae82acac73cfffd9ede2dd3aa702c (patch) | |
tree | fc59e0c99520fc02981bfb450871b652dfc711f1 /askbot/middleware/anon_user.py | |
parent | 0d7897d9d5279e281b3dd54a6224a1e08c78cc58 (diff) | |
parent | 2e5cc2b5d9285325e57b780b4cb745538610c16d (diff) | |
download | askbot-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.py | 22 |
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 + |