[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/ Added handling of user logged in via ZMI.
Charlie Clark
charlie at begeistert.org
Fri Jun 25 03:35:22 EDT 2010
Log message for revision 113819:
Added handling of user logged in via ZMI.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/authentication.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml
U Products.CMFDefault/trunk/Products/CMFDefault/browser/templates/logged_out.pt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/tests/authentication.txt
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/authentication.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/authentication.py 2010-06-25 06:55:08 UTC (rev 113818)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/authentication.py 2010-06-25 07:35:22 UTC (rev 113819)
@@ -15,7 +15,7 @@
$Id$
"""
-from urllib import quote
+from urllib import quote, urlencode
from Products.Five import BrowserView
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
@@ -250,6 +250,8 @@
class Logout(ViewBase):
"""Log the user out"""
+ template = ViewPageTemplateFile("templates/logged_out.pt")
+
@memoize
def logged_in(self):
"""Check whether the user is (still logged in)"""
@@ -269,8 +271,11 @@
def __call__(self):
"""Clear cookies and return the template"""
+ if 'portal_status_message' in self.request:
+ return self.template()
if self.logged_in():
self.clear_skin_cookie()
self.logout()
- return self.request.response.redirect(self.request.URL)
- return super(Logout, self).__call__()
+ status = "?" + urlencode({'portal_status_message':
+ _(u'You have been logged out.')})
+ return self.request.response.redirect(self.request.URL + status)
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml 2010-06-25 06:55:08 UTC (rev 113818)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/configure.zcml 2010-06-25 07:35:22 UTC (rev 113819)
@@ -182,7 +182,6 @@
layer="..interfaces.ICMFDefaultSkin"
name="logout.html"
class=".authentication.Logout"
- template="templates/logged_out.pt"
permission="zope2.View"
/>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/templates/logged_out.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/templates/logged_out.pt 2010-06-25 06:55:08 UTC (rev 113818)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/templates/logged_out.pt 2010-06-25 07:35:22 UTC (rev 113819)
@@ -2,8 +2,6 @@
<body>
<metal:slot metal:fill-slot="body" i18n:domain="cmf_default">
-<p tal:condition="not: view/logged_in"
- i18n:translate="">You have been logged out.</p>
<p tal:condition="view/logged_in"
i18n:translate="">You are logged in outside the portal. You may need to
<a href="/manage_zmi_logout">log out of the Zope management interface</a>.</p>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/tests/authentication.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/tests/authentication.txt 2010-06-25 06:55:08 UTC (rev 113818)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/tests/authentication.txt 2010-06-25 07:35:22 UTC (rev 113819)
@@ -156,4 +156,12 @@
True
>>> browser.open('http://localhost/site/@@logout.html')
>>> '[cmf_default][You have been logged out.' in browser.contents
+ True
+
+User logged in via ZMI and therefore cannot logout
+ >>> browser = Browser()
+ >>> browser.open('http://localhost/site/manage_main')
+ >>> browser.cookies['__ac'] = '%s' % mbr_credentials
+ >>> browser.open('http://localhost/site/@@logout.html')
+ >>> '[[cmf_default][You are logged in outside the portal' in browser.contents
True
\ No newline at end of file
More information about the checkins
mailing list