[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ CookieCrumbler is now a UniqueObject.
Charlie Clark
charlie at begeistert.org
Mon Apr 19 07:42:28 EDT 2010
Log message for revision 111083:
CookieCrumbler is now a UniqueObject.
Tests that depend on a specific id have been updated
_create_forms method removed.
Changed:
U Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py
U Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cookieauth.py
U Products.CMFCore/trunk/Products/CMFCore/tests/test_CookieCrumbler.py
-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py 2010-04-19 11:03:07 UTC (rev 111082)
+++ Products.CMFCore/trunk/Products/CMFCore/CookieCrumbler.py 2010-04-19 11:42:27 UTC (rev 111083)
@@ -53,7 +53,7 @@
"""
-class CookieCrumbler(PropertyManager, SimpleItem):
+class CookieCrumbler(UniqueObject, PropertyManager, SimpleItem):
"""Reads cookies during traversal and simulates the HTTP auth headers.
"""
@@ -101,29 +101,36 @@
name_cookie = '__ac_name'
pw_cookie = '__ac_password'
persist_cookie = '__ac_persistent'
+ local_cookie_path = False
+ cache_header_value = 'private'
+ log_username = True
+ # the following properties are deprecated and will be replaced by
+ # user actions
auto_login_page = 'login_form'
unauth_page = ''
logout_page = 'logged_out'
- local_cookie_path = False
- cache_header_value = 'private'
- log_username = True
-
- def __init__(self, id=None):
- if id is not None:
- self.id = str(id)
+ id = 'cookie_authentication'
security.declarePrivate('delRequestVar')
def delRequestVar(self, req, name):
# No errors of any sort may propagate, and we don't care *what*
# they are, even to log them.
- try: del req.other[name]
- except: pass
- try: del req.form[name]
- except: pass
- try: del req.cookies[name]
- except: pass
- try: del req.environ[name]
- except: pass
+ try:
+ del req.other[name]
+ except:
+ pass
+ try:
+ del req.form[name]
+ except:
+ pass
+ try:
+ del req.cookies[name]
+ except:
+ pass
+ try:
+ del req.environ[name]
+ except:
+ pass
security.declarePublic('getCookiePath')
def getCookiePath(self):
@@ -429,30 +436,23 @@
#
# No errors of any sort may propagate, and we don't care *what*
# they are, even to log them.
- try: del self.resp.unauthorized
- except: pass
- try: del self.resp._unauthorized
- except: pass
- try: del self.resp
- except: pass
+ try:
+ del self.resp.unauthorized
+ except:
+ pass
+ try:
+ del self.resp._unauthorized
+ except:
+ pass
+ try:
+ del self.resp
+ except:
+ pass
manage_addCCForm = HTMLFile('dtml/addCC', globals())
manage_addCCForm.__name__ = 'addCC'
-def _create_forms(ob):
- ''' Create default forms inside ob '''
- import os
- from OFS.DTMLMethod import addDTMLMethod
- dtmldir = os.path.join(os.path.dirname(__file__), 'dtml')
- for fn in ('index_html', 'logged_in', 'logged_out', 'login_form',
- 'standard_login_footer', 'standard_login_header'):
- filename = os.path.join(dtmldir, fn + '.dtml')
- f = open(filename, 'rt')
- try: data = f.read()
- finally: f.close()
- addDTMLMethod(ob, fn, file=data)
-
def manage_addCC(dispatcher, id, create_forms=0, REQUEST=None):
' '
ob = CookieCrumbler()
Modified: Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cookieauth.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cookieauth.py 2010-04-19 11:03:07 UTC (rev 111082)
+++ Products.CMFCore/trunk/Products/CMFCore/exportimport/tests/test_cookieauth.py 2010-04-19 11:42:27 UTC (rev 111083)
@@ -30,7 +30,7 @@
_COOKIECRUMBLER_BODY = """\
<?xml version="1.0"?>
-<object name="foo_cookiecrumbler" meta_type="Cookie Crumbler">
+<object name="cookie_authentication" meta_type="Cookie Crumbler">
<property name="auth_cookie">__ac</property>
<property name="name_cookie">__ac_name</property>
<property name="pw_cookie">__ac_password</property>
@@ -46,7 +46,7 @@
_DEFAULT_EXPORT = """\
<?xml version="1.0"?>
-<object name="foo_cookiecrumbler" meta_type="Cookie Crumbler">
+<object name="cookie_authentication" meta_type="Cookie Crumbler">
<property name="auth_cookie">__ac</property>
<property name="name_cookie">__ac_name</property>
<property name="pw_cookie">__ac_password</property>
@@ -62,7 +62,7 @@
_CHANGED_EXPORT = """\
<?xml version="1.0"?>
-<object name="foo_cookiecrumbler" meta_type="Cookie Crumbler">
+<object name="cookie_authentication" meta_type="Cookie Crumbler">
<property name="auth_cookie">value1</property>
<property name="name_cookie">value3</property>
<property name="pw_cookie">value5</property>
@@ -88,7 +88,7 @@
return CookieCrumblerXMLAdapter
def setUp(self):
- self._obj = CookieCrumbler('foo_cookiecrumbler')
+ self._obj = CookieCrumbler()
self._BODY = _COOKIECRUMBLER_BODY
@@ -97,7 +97,7 @@
def _initSite(self, use_changed=False):
self.root.site = Folder(id='site')
site = self.root.site
- cc = site.cookie_authentication = CookieCrumbler('foo_cookiecrumbler')
+ cc = site.cookie_authentication = CookieCrumbler()
if use_changed:
cc.auth_cookie = 'value1'
Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CookieCrumbler.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_CookieCrumbler.py 2010-04-19 11:03:07 UTC (rev 111082)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CookieCrumbler.py 2010-04-19 11:42:27 UTC (rev 111083)
@@ -41,8 +41,6 @@
class CookieCrumblerTests(unittest.TestCase, PlacelessSetup):
- _CC_ID = 'cookie_authentication'
-
def _getTargetClass(self):
from Products.CMFCore.CookieCrumbler import CookieCrumbler
return CookieCrumbler
@@ -92,7 +90,6 @@
root._setObject(users.id, users)
cc = self._makeOne()
- cc.id = self._CC_ID
root._setObject(cc.id, cc)
index = DTMLMethod()
@@ -349,41 +346,24 @@
self.assertEqual(req['AUTHENTICATED_USER'].getUserName(),
'isaac')
- def testCreateForms(self):
- # Verify the factory creates the login forms.
- from Products.CMFCore.CookieCrumbler import manage_addCC
-
- if 'CMFCore' in self._getTargetClass().__module__:
- # This test is disabled in CMFCore.
- return
-
- root, cc, req, credentials = self._makeSite()
- root._delObject('cookie_authentication')
- manage_addCC(root, 'login', create_forms=1)
- ids = root.login.objectIds()
- ids.sort()
- self.assertEqual(tuple(ids), (
- 'index_html', 'logged_in', 'logged_out', 'login_form',
- 'standard_login_footer', 'standard_login_header'))
-
def test_before_traverse_hooks(self):
from OFS.Folder import Folder
container = Folder()
- cc = self._makeOne(self._CC_ID)
+ cc = self._makeOne()
marker = []
bt_before = getattr(container, '__before_traverse__', marker)
self.failUnless(bt_before is marker)
- container._setObject(self._CC_ID, cc)
+ container._setObject(cc.id, cc)
bt_added = getattr(container, '__before_traverse__')
self.assertEqual(len(bt_added.items()), 1)
k, v = bt_added.items()[0]
self.failUnless(k[1].startswith(self._getTargetClass().meta_type))
- self.assertEqual(v.name, self._CC_ID)
+ self.assertEqual(v.name, cc.id)
- container._delObject(self._CC_ID)
+ container._delObject(cc.id)
bt_removed = getattr(container, '__before_traverse__')
self.assertEqual(len(bt_removed.items()), 0)
More information about the checkins
mailing list