diff options
-rw-r--r-- | askbot/doc/source/changelog.rst | 1 | ||||
-rw-r--r-- | askbot/doc/source/contributors.rst | 1 | ||||
-rw-r--r-- | askbot/middleware/anon_user.py | 22 |
3 files changed, 21 insertions, 3 deletions
diff --git a/askbot/doc/source/changelog.rst b/askbot/doc/source/changelog.rst index 0ed3f883..c40f08c1 100644 --- a/askbot/doc/source/changelog.rst +++ b/askbot/doc/source/changelog.rst @@ -4,6 +4,7 @@ Changes in Askbot Development version ------------------- * Greeting for anonymuos users can be changed from live settings (Hrishi) +* Greeting for anonymous users is shown only once (Rag Sagar) * Added support for Akismet spam detection service (Adolfo Fitoria) * Added noscript message (Arun SAG) * Support for url shortening with TinyUrl on link sharing (Rtnpro) diff --git a/askbot/doc/source/contributors.rst b/askbot/doc/source/contributors.rst index 2a834309..35c02be1 100644 --- a/askbot/doc/source/contributors.rst +++ b/askbot/doc/source/contributors.rst @@ -20,6 +20,7 @@ Programming and documentation * Ramiro Morales (with Machinalis) * `NoahY <https://github.com/NoahY>`_ * `Gael Pasgrimaud <http://www.gawel.org/>`_ (bearstech) +* `Rag Sagar <https://github.com/ragsagar>`_ * Alex Robbins (celery support) * `Tomasz Szynalski <http://antimoon.com>`_ 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 + |