# HG changeset patch
# User Mitesh Patel <qed777@gmail.com>
# Date 1266122240 28800
# Node ID 4beb65b1821d85248e43ac2dd2d0a4655863770a
# Parent  b69fa684bfc34be8813f7be7e3264270ccac1617
#8249: Expire the notebook test and session cookies on logout

diff --git a/sagenb/notebook/twist.py b/sagenb/notebook/twist.py
--- a/sagenb/notebook/twist.py
+++ b/sagenb/notebook/twist.py
@@ -2406,6 +2406,23 @@ class RedirectLogin(resource.PostableRes
     def childFactory(self, request, name):
         return RedirectLogin()
 
+class LogoutRedirectLogin(resource.PostableResource):
+    def render(self, ctx):
+        response = http.RedirectResponse('/')
+
+        # Force cookie deletion.
+        yesterday = time.time() - 3600 * 24
+        c1 = http_headers.Cookie('nb_session_%s' % notebook.port, '',
+                                 expires=yesterday)
+        c2 = http_headers.Cookie('cookie_test_%s' % notebook.port, '',
+                                 expires=yesterday)
+        response.headers.setHeader("set-cookie", [c1, c2])
+
+        return response
+
+    def childFactory(self, request, name):
+        return LogoutRedirectLogin()
+
 import sagenb.simple.twist
 
 class Toplevel(resource.PostableResource):
@@ -2455,7 +2472,7 @@ class AnonymousToplevel(Toplevel):
     child_css = CSS()
     child_javascript = Javascript()
     child_java = Java()
-    child_logout = RedirectLogin()
+    child_logout = LogoutRedirectLogin()
 
     def userchildFactory(self, request, name):
         # This is called from Toplevel above
