[Zope-Checkins] SVN: Zope/branches/2.12/ Remove URL-based suppression of access rules and site root objects.
Tres Seaver
tseaver at palladion.com
Fri May 21 11:20:04 EDT 2010
Log message for revision 112622:
Remove URL-based suppression of access rules and site root objects.
Suppression using ``os.environ`` still works.
Fixes LP #142878.
Changed:
U Zope/branches/2.12/doc/CHANGES.rst
U Zope/branches/2.12/src/Products/SiteAccess/AccessRule.py
U Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py
U Zope/branches/2.12/src/Products/SiteAccess/tests/testAccessRule.py
U Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py
-=-
Modified: Zope/branches/2.12/doc/CHANGES.rst
===================================================================
--- Zope/branches/2.12/doc/CHANGES.rst 2010-05-21 15:20:02 UTC (rev 112621)
+++ Zope/branches/2.12/doc/CHANGES.rst 2010-05-21 15:20:04 UTC (rev 112622)
@@ -11,6 +11,9 @@
Bugs Fixed
++++++++++
+- LP #142878: Remove URL-based suppression of access rules and site root
+ objects. Suppression using ``os.environ`` still works.
+
- LP #143144: Fix documentation for the zope.conf ``mount-point``
directive.
Modified: Zope/branches/2.12/src/Products/SiteAccess/AccessRule.py
===================================================================
--- Zope/branches/2.12/src/Products/SiteAccess/AccessRule.py 2010-05-21 15:20:02 UTC (rev 112621)
+++ Zope/branches/2.12/src/Products/SiteAccess/AccessRule.py 2010-05-21 15:20:04 UTC (rev 112622)
@@ -20,20 +20,8 @@
def __call__(self, container, request):
if SUPPRESS_ACCESSRULE:
return
- if '_SUPPRESS_ACCESSRULE' in _swallow(request, '_SUPPRESS'):
- request.setVirtualRoot(request.steps)
- return
NameCaller.__call__(self, container, request)
-def _swallow(request, prefix):
- path = request['TraversalRequestNameStack']
- steps = request.steps
- i = len(steps)
- while i > 0 and steps[i - 1][:1] == '_':
- i = i - 1
- while path and path[-1][:len(prefix)] == prefix:
- steps.append(path.pop())
- return steps[i:]
def manage_addAccessRule(self, method_id=None, REQUEST=None, **ignored):
"""Point a __before_traverse__ entry at the specified method"""
Modified: Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py
===================================================================
--- Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py 2010-05-21 15:20:02 UTC (rev 112621)
+++ Zope/branches/2.12/src/Products/SiteAccess/SiteRoot.py 2010-05-21 15:20:04 UTC (rev 112622)
@@ -14,8 +14,6 @@
from ZPublisher.BeforeTraverse import registerBeforeTraverse
from ZPublisher.BeforeTraverse import unregisterBeforeTraverse
-from Products.SiteAccess.AccessRule import _swallow
-
SUPPRESS_SITEROOT = os.environ.has_key('SUPPRESS_SITEROOT')
class Traverser(Persistent, Item):
@@ -103,9 +101,6 @@
rq = request
if SUPPRESS_SITEROOT:
return
- if '_SUPPRESS_SITEROOT' in _swallow(rq, '_SUPPRESS'):
- rq.setVirtualRoot(rq.steps)
- return
base = (self.base or
rq.get('SiteRootBASE') or
rq.environ.get('SiteRootBASE'))
Modified: Zope/branches/2.12/src/Products/SiteAccess/tests/testAccessRule.py
===================================================================
--- Zope/branches/2.12/src/Products/SiteAccess/tests/testAccessRule.py 2010-05-21 15:20:02 UTC (rev 112621)
+++ Zope/branches/2.12/src/Products/SiteAccess/tests/testAccessRule.py 2010-05-21 15:20:04 UTC (rev 112622)
@@ -37,7 +37,7 @@
self.failIf(_called)
def test___call___w_SUPPRESS_ACCESSRULE_in_URL(self):
- # This behavior will change once we land lp:142878.
+ # This behavior changed in landing lp:142878.
_called = []
def _func(*args):
_called.append(args)
@@ -47,8 +47,8 @@
request.steps = []
container = DummyContainer(testing=_func)
rule(container, request)
- self.failIf(_called)
- self.assertEqual(request._virtual_root, ['_SUPPRESS_ACCESSRULE'])
+ self.failUnless(_called)
+ self.assertEqual(request._virtual_root, None)
def test___call___wo_SUPPRESS_ACCESSRULE(self):
_called = []
Modified: Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py
===================================================================
--- Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py 2010-05-21 15:20:02 UTC (rev 112621)
+++ Zope/branches/2.12/src/Products/SiteAccess/tests/testSiteRoot.py 2010-05-21 15:20:04 UTC (rev 112622)
@@ -166,16 +166,24 @@
self.assertEqual(request, {})
def test___call___w_SUPPRESS_SITEROOT_in_URL(self):
- # This behavior will change once we land lp:142878.
- siteroot = self._makeOne(base='http://example.com', path='/path')
+ # This behavior changed in landing lp:142878.
+ URL='http://localhost:8080/example/folder/'
+ siteroot = self._makeOne(base='http://example.com', path='/example')
request = DummyRequest(TraversalRequestNameStack=
- ['_SUPPRESS_SITEROOT'])
- def _dont_go_here(key, value):
- raise NotImplementedError
- request.__setitem__ = _dont_go_here
+ ['_SUPPRESS_SITEROOT'],
+ URL=URL,
+ ACTUAL_URL=URL,
+ SERVER_URL='http://localhost:8080',
+ )
request.steps = []
+ request.environ = {}
siteroot(None, request)
- self.assertEqual(request._virtual_root, ['_SUPPRESS_SITEROOT'])
+ self.assertEqual(request['URL'], URL)
+ self.assertEqual(request['SERVER_URL'], 'http://example.com')
+ self.assertEqual(request['ACTUAL_URL'],
+ 'http://example.com/example/folder/')
+ self.assertEqual(request._virtual_root, '/example')
+ self.failUnless(request._urls_reset)
def test___call___wo_SUPPRESS_SITEROOT_w_base_wo_path(self):
URL='http://localhost:8080/example/folder/'
More information about the Zope-Checkins
mailing list