[Checkins] SVN: z3c.layer.minimal/tags/1.0.2/ tag version 1.0.2
Christophe Combelles
ccomb at free.fr
Sat Apr 17 19:01:48 EDT 2010
Log message for revision 111020:
tag version 1.0.2
Changed:
A z3c.layer.minimal/tags/1.0.2/
D z3c.layer.minimal/tags/1.0.2/CHANGES.txt
A z3c.layer.minimal/tags/1.0.2/CHANGES.txt
D z3c.layer.minimal/tags/1.0.2/setup.py
A z3c.layer.minimal/tags/1.0.2/setup.py
D z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt
D z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/bugfixes.txt
D z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml
D z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py
D z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml
D z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml
A z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml
-=-
Deleted: z3c.layer.minimal/tags/1.0.2/CHANGES.txt
===================================================================
--- z3c.layer.minimal/branches/1.0/CHANGES.txt 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/CHANGES.txt 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,49 +0,0 @@
-=======
-CHANGES
-=======
-
-1.0.1 (2008-01-24)
-------------------
-
-- Bug: Improved meta-data.
-
-
-1.0.0 (2008-01-21)
-------------------
-
-- Restructure: Move ``z3c.layer.minimal`` package to it's own top level
- package form ``zope.layer`` to ``z3c.layer.minimal``.
-
-- Restructure: Moved implementation from ``z3c.layer`` to
- ``z3c.layer.minimal``
-
-
-0.2.3 (2007-11-07)
-------------------
-
-- Forward-Bug: Due to a bug in mechanize, the testbrowser throws
- ``httperror_seek_wrapper`` instead of ``HTTPError`` errors. Thanks to RE
- normalizers, the code will now work whether the bug is fixed or not in
- mechanize.
-
-
-0.2.2 (2007-10-31)
-------------------
-
-- Bug: Fixed package meta-data.
-
-- Bug: Fixed test failures due to depency updates.
-
-- Restructure: Fixed deprecation warninf for ``ZopeSecurityPolicy``.
-
-
-0.2.1 (2007-??-??)
-------------------
-
-- Changes unknown.
-
-
-0.2.0 (2007-??-??)
-------------------
-
-- Initial release.
Copied: z3c.layer.minimal/tags/1.0.2/CHANGES.txt (from rev 111019, z3c.layer.minimal/branches/1.0/CHANGES.txt)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/CHANGES.txt (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/CHANGES.txt 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,61 @@
+=======
+CHANGES
+=======
+
+1.0.2 (2010-04-18)
+------------------
+
+- **Security issue:** The traverser defined for
+ ``IPageletBrowserLayer`` was a trusted adapter, so the security
+ proxy got removed from each traversed object. Thus all sub-objects
+ were publically accessable, too.
+
+ Making this change might BREAK your application!
+ That means if security is not well declared.
+
+
+1.0.1 (2008-01-24)
+------------------
+
+- Bug: Improved meta-data.
+
+
+1.0.0 (2008-01-21)
+------------------
+
+- Restructure: Move ``z3c.layer.minimal`` package to it's own top level
+ package form ``zope.layer`` to ``z3c.layer.minimal``.
+
+- Restructure: Moved implementation from ``z3c.layer`` to
+ ``z3c.layer.minimal``
+
+
+0.2.3 (2007-11-07)
+------------------
+
+- Forward-Bug: Due to a bug in mechanize, the testbrowser throws
+ ``httperror_seek_wrapper`` instead of ``HTTPError`` errors. Thanks to RE
+ normalizers, the code will now work whether the bug is fixed or not in
+ mechanize.
+
+
+0.2.2 (2007-10-31)
+------------------
+
+- Bug: Fixed package meta-data.
+
+- Bug: Fixed test failures due to depency updates.
+
+- Restructure: Fixed deprecation warning for ``ZopeSecurityPolicy``.
+
+
+0.2.1 (2007-??-??)
+------------------
+
+- Changes unknown.
+
+
+0.2.0 (2007-??-??)
+------------------
+
+- Initial release.
Deleted: z3c.layer.minimal/tags/1.0.2/setup.py
===================================================================
--- z3c.layer.minimal/branches/1.0/setup.py 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/setup.py 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,78 +0,0 @@
-#!python
-##############################################################################
-#
-# Copyright (c) 2007 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Setup
-
-$Id: setup.py 313 2007-05-22 15:33:41Z srichter $
-"""
-import os
-import xml.sax.saxutils
-from setuptools import setup, find_packages
-
-def read(*rnames):
- text = open(os.path.join(os.path.dirname(__file__), *rnames)).read()
- return xml.sax.saxutils.escape(text)
-
-setup(
- name = 'z3c.layer.minimal',
- version = '1.0.1',
- author='Zope Foundation and Contributors',
- author_email = "zope-dev at zope.org",
- description = "Minimal layer setup for Zope3",
- long_description=(
- read('README.txt')
- + '\n\n' +
- 'Detailed Documentation\n'
- '**********************'
- + '\n\n' +
- read('src', 'z3c', 'layer', 'minimal', 'README.txt')
- + '\n\n' +
- read('CHANGES.txt')
- ),
- keywords = "z3c minimal layer zope zope3",
- classifiers = [
- 'Development Status :: 5 - Production/Stable',
- 'Environment :: Web Environment',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: Zope Public License',
- 'Programming Language :: Python',
- 'Natural Language :: English',
- 'Operating System :: OS Independent',
- 'Topic :: Internet :: WWW/HTTP',
- 'Framework :: Zope3'],
- url='http://pypi.python.org/pypi/z3c.layer.minimal',
- license='ZPL 2.1',
- packages = find_packages('src'),
- include_package_data = True,
- package_dir = {'':'src'},
- namespace_packages = ['z3c', 'z3c.layer'],
- extras_require = dict(
- test = [
- 'zope.app.securitypolicy',
- 'zope.app.testing',
- 'zope.app.zcmlfiles',
- 'zope.securitypolicy',
- 'zope.testbrowser',
- ],
- ),
- install_requires = [
- 'setuptools',
- 'zope.app.http',
- 'zope.app.publisher',
- 'zope.configuration',
- 'zope.traversing',
- ],
- zip_safe = False,
-)
-
Copied: z3c.layer.minimal/tags/1.0.2/setup.py (from rev 111019, z3c.layer.minimal/branches/1.0/setup.py)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/setup.py (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/setup.py 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,78 @@
+#!python
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Setup
+
+$Id: setup.py 313 2007-05-22 15:33:41Z srichter $
+"""
+import os
+import xml.sax.saxutils
+from setuptools import setup, find_packages
+
+def read(*rnames):
+ text = open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+ return xml.sax.saxutils.escape(text)
+
+setup(
+ name = 'z3c.layer.minimal',
+ version = '1.0.2',
+ author='Zope Foundation and Contributors',
+ author_email = "zope-dev at zope.org",
+ description = "Minimal layer setup for Zope3",
+ long_description=(
+ read('README.txt')
+ + '\n\n' +
+ 'Detailed Documentation\n'
+ '**********************'
+ + '\n\n' +
+ read('src', 'z3c', 'layer', 'minimal', 'README.txt')
+ + '\n\n' +
+ read('CHANGES.txt')
+ ),
+ keywords = "z3c minimal layer zope zope3",
+ classifiers = [
+ 'Development Status :: 5 - Production/Stable',
+ 'Environment :: Web Environment',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Zope Public License',
+ 'Programming Language :: Python',
+ 'Natural Language :: English',
+ 'Operating System :: OS Independent',
+ 'Topic :: Internet :: WWW/HTTP',
+ 'Framework :: Zope3'],
+ url='http://pypi.python.org/pypi/z3c.layer.minimal',
+ license='ZPL 2.1',
+ packages = find_packages('src'),
+ include_package_data = True,
+ package_dir = {'':'src'},
+ namespace_packages = ['z3c', 'z3c.layer'],
+ extras_require = dict(
+ test = [
+ 'zope.app.securitypolicy',
+ 'zope.app.testing',
+ 'zope.app.zcmlfiles',
+ 'zope.securitypolicy',
+ 'zope.testbrowser',
+ ],
+ ),
+ install_requires = [
+ 'setuptools',
+ 'zope.app.http',
+ 'zope.app.publisher',
+ 'zope.configuration',
+ 'zope.traversing',
+ ],
+ zip_safe = False,
+)
+
Deleted: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt
===================================================================
--- z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/README.txt 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,182 +0,0 @@
-================================
-Minimal Browser Layer for Zope 3
-================================
-
-This package contains the minimal layer. This layer supports a correct set of
-component registration and can be used for inheritation in custom skins.
-
-Right now the default implementation in Zope3 has different restriction in the
-traversal concept and use to much registration on the default layer.
-
-
-``IMinimalBrowserLayer`` Interface
-----------------------------------
-
-The minimal layer is useful for build custom presentation skins without access
-to ZMI menus like `zmi_views` etc. This means there is no menu item registred
-if you use this layer.
-
-This layer is NOT derived from ``IDefaultBrowserLayer``. Therefore it provides
-only a minimal set of the most important public views such as
-``@@absolute_url``. The following packages are accounted:
-
-- ``zope.app.http.exception``
-- ``zope.app.publication``
-- ``zope.app.publisher.browser``
-- ``zope.app.traversing``
-- ``zope.app.traversing.browser``
-
-
-Testing
--------
-
-For testing the ``IMinimalBrowserLayer`` layer we use the testing skin defined
-in the tests package which uses the ``IMinimalBrowserLayer`` layer as the only
-base layer. This means, that our testing skin provides only the views defined
-in the minimal package and it's testing views defined in tests.
-
-Login as manager first:
-
- >>> from zope.testbrowser.testing import Browser
- >>> manager = Browser()
- >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
-
-Check if we can access the page.html view which is registred in the
-ftesting.zcml file with our skin:
-
- >>> manager = Browser()
- >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
- >>> skinURL = 'http://localhost/++skin++MinimalTesting'
- >>> manager.open(skinURL + '/page.html')
- >>> manager.url
- 'http://localhost/++skin++MinimalTesting/page.html'
-
- >>> print manager.contents
- <BLANKLINE>
- <html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <BLANKLINE>
- test page
- <BLANKLINE>
- </body>
- </html>
- <BLANKLINE>
- <BLANKLINE>
-
-Now check the not found page which is a exception view on the exception
-``zope.publisher.interfaces.INotFound``:
-
- >>> manager.open(skinURL + '/foobar.html')
- Traceback (most recent call last):
- ...
- httperror_seek_wrapper: HTTP Error 404: Not Found
-
- >>> print manager.contents
- <BLANKLINE>
- <html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <div>
- <br />
- <br />
- <h3>
- The page you are trying to access is not available
- </h3>
- <br />
- <b>
- Please try the following:
- </b>
- <br />
- <ol>
- <li>
- Make sure that the Web site address is spelled correctly.
- </li>
- <li>
- <a href="javascript:history.back(1);">
- Go back and try another URL.
- </a>
- </li>
- </ol>
- </div>
- </body>
- </html>
- <BLANKLINE>
- <BLANKLINE>
-
-And check the user error page which is a view registred for
-``zope.exceptions.interfaces.IUserError`` exceptions:
-
- >>> manager.open(skinURL + '/@@usererror.html')
- >>> print manager.contents
- <BLANKLINE>
- <html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <div>
- <div>simply user error</div>
- </div>
- </body>
- </html>
- <BLANKLINE>
- <BLANKLINE>
-
-And check error view registred for
-``zope.interface.common.interfaces.IException``:
-
- >>> manager.open(skinURL + '/@@systemerror.html')
- >>> print manager.contents
- <BLANKLINE>
- <html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <div>
- <br />
- <br />
- <h3>A system error occurred</h3>
- <br />
- <b>Please contact the administrator.</b>
- <a href="javascript:history.back(1);">
- Go back and try another URL.
- </a>
- </div>
- </body>
- </html>
- <BLANKLINE>
- <BLANKLINE>
-
-And check the ``zope.security.interfaces.IUnauthorized`` view, use a new
-unregistred user (test browser) for this:
-
- >>> unauthorized = Browser()
- >>> unauthorized.open(skinURL + '/@@forbidden.html')
- Traceback (most recent call last):
- ...
- httperror_seek_wrapper: HTTP Error 401: Unauthorized
-
- >>> print unauthorized.contents
- <BLANKLINE>
- <html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <div>
- <BLANKLINE>
- <h1>Unauthorized</h1>
- <BLANKLINE>
- <p>You are not authorized</p>
- <BLANKLINE>
- </div>
- </body>
- </html>
- <BLANKLINE>
- <BLANKLINE>
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/README.txt)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/README.txt 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,182 @@
+================================
+Minimal Browser Layer for Zope 3
+================================
+
+This package contains the minimal layer. This layer supports a correct set of
+component registration and can be used for inheritance in custom skins.
+
+Right now the default implementation in Zope3 has different restriction in the
+traversal concept and uses to many registrations on the default layer.
+
+
+``IMinimalBrowserLayer`` Interface
+----------------------------------
+
+The minimal layer is useful for build custom presentation skins without access
+to ZMI menus like `zmi_views` etc. This means there is no menu item registered
+if you use this layer.
+
+This layer is NOT derived from ``IDefaultBrowserLayer``. Therefore it provides
+only a minimal set of the most important public views such as
+``@@absolute_url``. The following packages are accounted:
+
+- ``zope.app.http.exception``
+- ``zope.app.publication``
+- ``zope.app.publisher.browser``
+- ``zope.app.traversing``
+- ``zope.app.traversing.browser``
+
+
+Testing
+-------
+
+For testing the ``IMinimalBrowserLayer`` layer we use the testing skin defined
+in the tests package which uses the ``IMinimalBrowserLayer`` layer as the only
+base layer. This means, that our testing skin provides only the views defined
+in the minimal package and it's testing views defined in tests.
+
+Login as manager first:
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> manager = Browser()
+ >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
+
+Check if we can access the page.html view which is registred in the
+ftesting.zcml file with our skin:
+
+ >>> manager = Browser()
+ >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
+ >>> skinURL = 'http://localhost/++skin++MinimalTesting'
+ >>> manager.open(skinURL + '/page.html')
+ >>> manager.url
+ 'http://localhost/++skin++MinimalTesting/page.html'
+
+ >>> print manager.contents
+ <BLANKLINE>
+ <html>
+ <head>
+ <title>testing</title>
+ </head>
+ <body>
+ <BLANKLINE>
+ test page
+ <BLANKLINE>
+ </body>
+ </html>
+ <BLANKLINE>
+ <BLANKLINE>
+
+Now check the not found page which is a exception view on the exception
+``zope.publisher.interfaces.INotFound``:
+
+ >>> manager.open(skinURL + '/foobar.html')
+ Traceback (most recent call last):
+ ...
+ httperror_seek_wrapper: HTTP Error 404: Not Found
+
+ >>> print manager.contents
+ <BLANKLINE>
+ <html>
+ <head>
+ <title>testing</title>
+ </head>
+ <body>
+ <div>
+ <br />
+ <br />
+ <h3>
+ The page you are trying to access is not available
+ </h3>
+ <br />
+ <b>
+ Please try the following:
+ </b>
+ <br />
+ <ol>
+ <li>
+ Make sure that the Web site address is spelled correctly.
+ </li>
+ <li>
+ <a href="javascript:history.back(1);">
+ Go back and try another URL.
+ </a>
+ </li>
+ </ol>
+ </div>
+ </body>
+ </html>
+ <BLANKLINE>
+ <BLANKLINE>
+
+And check the user error page which is a view registred for
+``zope.exceptions.interfaces.IUserError`` exceptions:
+
+ >>> manager.open(skinURL + '/@@usererror.html')
+ >>> print manager.contents
+ <BLANKLINE>
+ <html>
+ <head>
+ <title>testing</title>
+ </head>
+ <body>
+ <div>
+ <div>simply user error</div>
+ </div>
+ </body>
+ </html>
+ <BLANKLINE>
+ <BLANKLINE>
+
+And check error view registred for
+``zope.interface.common.interfaces.IException``:
+
+ >>> manager.open(skinURL + '/@@systemerror.html')
+ >>> print manager.contents
+ <BLANKLINE>
+ <html>
+ <head>
+ <title>testing</title>
+ </head>
+ <body>
+ <div>
+ <br />
+ <br />
+ <h3>A system error occurred</h3>
+ <br />
+ <b>Please contact the administrator.</b>
+ <a href="javascript:history.back(1);">
+ Go back and try another URL.
+ </a>
+ </div>
+ </body>
+ </html>
+ <BLANKLINE>
+ <BLANKLINE>
+
+And check the ``zope.security.interfaces.IUnauthorized`` view, use a new
+unregistred user (test browser) for this:
+
+ >>> unauthorized = Browser()
+ >>> unauthorized.open(skinURL + '/@@forbidden.html')
+ Traceback (most recent call last):
+ ...
+ httperror_seek_wrapper: HTTP Error 401: Unauthorized
+
+ >>> print unauthorized.contents
+ <BLANKLINE>
+ <html>
+ <head>
+ <title>testing</title>
+ </head>
+ <body>
+ <div>
+ <BLANKLINE>
+ <h1>Unauthorized</h1>
+ <BLANKLINE>
+ <p>You are not authorized</p>
+ <BLANKLINE>
+ </div>
+ </body>
+ </html>
+ <BLANKLINE>
+ <BLANKLINE>
Deleted: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py
===================================================================
--- z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/__init__.py 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,79 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2005 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-$Id: __init__.py 69386 2006-08-10 08:24:12Z rogerineichen $
-"""
-
-import zope.interface
-import zope.component
-from zope.publisher.browser import BrowserView, BrowserPage
-from zope.security.interfaces import Unauthorized
-from zope.exceptions.interfaces import UserError
-
-from z3c.layer import minimal
-
-
-class IMinimalTestingSkin(minimal.IMinimalBrowserLayer):
- """The IMinimalBrowserLayer testing skin."""
-
-
-class TestingStandardMacros(BrowserView):
-
- zope.interface.implements(zope.interface.common.mapping.IItemMapping)
-
- macro_pages = ('page_macros', 'view_macros', 'error_macros')
- aliases = {
- 'view': 'page',
- 'dialog': 'page',
- 'addingdialog': 'page'
- }
-
- def __getitem__(self, key):
- key = self.aliases.get(key, key)
- context = self.context
- request = self.request
- for name in self.macro_pages:
- page = zope.component.getMultiAdapter((context, request),
- name=name)
- try:
- v = page[key]
- except KeyError:
- pass
- else:
- return v
- raise KeyError(key)
-
-
-class UnauthorizedPage(BrowserPage):
- """Unauthorized view."""
-
- def __call__(self):
- raise Unauthorized('not authorized')
- return u''
-
-
-class UserErrorPage(BrowserPage):
- """Unauthorized view."""
-
- def __call__(self):
- raise UserError('simply user error')
- return u''
-
-
-class SystemErrorPage(BrowserPage):
- """Unauthorized view."""
-
- def __call__(self):
- raise Exception('simply system error')
- return u''
\ No newline at end of file
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/__init__.py)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/__init__.py 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,87 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id: __init__.py 69386 2006-08-10 08:24:12Z rogerineichen $
+"""
+
+import zope.interface
+import zope.component
+from zope.publisher.browser import BrowserView, BrowserPage
+from zope.security.interfaces import Unauthorized
+from zope.exceptions.interfaces import UserError
+
+from z3c.layer import minimal
+
+
+class IMinimalTestingSkin(minimal.IMinimalBrowserLayer):
+ """The IMinimalBrowserLayer testing skin."""
+
+
+class TestingStandardMacros(BrowserView):
+
+ zope.interface.implements(zope.interface.common.mapping.IItemMapping)
+
+ macro_pages = ('page_macros', 'view_macros', 'error_macros')
+ aliases = {
+ 'view': 'page',
+ 'dialog': 'page',
+ 'addingdialog': 'page'
+ }
+
+ def __getitem__(self, key):
+ key = self.aliases.get(key, key)
+ context = self.context
+ request = self.request
+ for name in self.macro_pages:
+ page = zope.component.getMultiAdapter((context, request),
+ name=name)
+ try:
+ v = page[key]
+ except KeyError:
+ pass
+ else:
+ return v
+ raise KeyError(key)
+
+
+class UnauthorizedPage(BrowserPage):
+ """Unauthorized view."""
+
+ def __call__(self):
+ raise Unauthorized('not authorized')
+ return u''
+
+
+class UserErrorPage(BrowserPage):
+ """Unauthorized view."""
+
+ def __call__(self):
+ raise UserError('simply user error')
+ return u''
+
+
+class SystemErrorPage(BrowserPage):
+ """Unauthorized view."""
+
+ def __call__(self):
+ raise Exception('simply system error')
+ return u''
+
+
+class ContainerContentsPage(BrowserPage):
+ """Contents of a conatiner."""
+
+ def __call__(self):
+ return str([type(x) for x in self.context.values()])
+
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/bugfixes.txt (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/bugfixes.txt)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/bugfixes.txt (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/bugfixes.txt 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,27 @@
+==========
+ Bugfixes
+==========
+
+Traversed objects where not security proxied
+============================================
+
+When an object got traversed its security proxy was removed, so its
+sub-objects could be publically accessed. To show that this behavior
+was fixed we put a folder into the root folder and look at its
+contents using a view:
+
+ >>> import zope.app.folder
+ >>> getRootFolder()['test'] = zope.app.folder.Folder()
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> manager = Browser()
+ >>> manager.addHeader('Authorization', 'Basic mgr:mgrpw')
+ >>> skinURL = 'http://localhost/++skin++MinimalTesting'
+ >>> manager.open(skinURL + '/container_contents.html')
+
+The view displays the types of the content objects inside the root
+folder. The content objects are security proxied:
+
+ >>> print manager.contents
+ [<type 'zope.security._proxy._Proxy'>]
+
Deleted: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml
===================================================================
--- z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/ftesting.zcml 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,132 +0,0 @@
-<configure xmlns="http://namespaces.zope.org/zope"
- xmlns:meta="http://namespaces.zope.org/meta"
- xmlns:browser="http://namespaces.zope.org/browser"
- i18n_domain="zope"
- package="z3c.layer.minimal.tests">
-
- <include package="zope.app.zcmlfiles" />
-
- <include package="zope.app.securitypolicy" file="meta.zcml" />
- <include package="zope.app.authentication" />
- <securityPolicy
- component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy" />
-
- <include package="zope.securitypolicy" />
-
- <role id="zope.Anonymous" title="Everybody"
- description="All users have this role implicitly" />
-
- <role id="zope.Manager" title="Site Manager" />
-
- <principal
- id="zope.manager"
- title="Administrator"
- login="mgr"
- password="mgrpw" />
-
- <grant
- role="zope.Manager"
- principal="zope.manager"
- />
-
- <unauthenticatedPrincipal
- id="zope.anybody"
- title="Unauthenticated User" />
-
- <unauthenticatedGroup
- id="zope.Anybody"
- title="Unauthenticated Users"
- />
-
- <authenticatedGroup
- id="zope.Authenticated"
- title="Authenticated Users"
- />
-
- <everybodyGroup
- id="zope.Everybody"
- title="All Users"
- />
-
- <grantAll role="zope.Manager" />
-
- <include package="zope.app.form.browser" />
- <include package="zope.app.http.exception" />
- <include package="zope.app.publication" />
- <include package="zope.app.publisher.browser" />
- <include package="zope.traversing" />
- <include package="zope.traversing.browser" />
- <include package="z3c.layer.minimal" />
-
- <interface
- interface="z3c.layer.minimal.tests.IMinimalTestingSkin"
- type="zope.publisher.interfaces.browser.IBrowserSkinType"
- name="MinimalTesting"
- />
-
- <browser:page
- for="*"
- name="standard_macros"
- permission="zope.Public"
- class=".TestingStandardMacros"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- allowed_interface="zope.interface.common.mapping.IItemMapping"
- />
-
- <browser:page
- for="*"
- name="page_macros"
- permission="zope.Public"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- template="page_macros.pt"
- />
-
- <browser:page
- for="*"
- name="view_macros"
- permission="zope.Public"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- template="view_macros.pt"
- />
-
- <browser:page
- for="*"
- name="error_macros"
- permission="zope.Public"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- template="error_macros.pt"
- />
-
- <browser:page
- for="*"
- name="page.html"
- permission="zope.ManageContent"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- template="page.pt"
- />
-
- <browser:page
- for="*"
- name="forbidden.html"
- permission="zope.View"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- class=".UnauthorizedPage"
- />
-
- <browser:page
- for="*"
- name="usererror.html"
- permission="zope.View"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- class=".UserErrorPage"
- />
-
- <browser:page
- for="*"
- name="systemerror.html"
- permission="zope.View"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- class=".SystemErrorPage"
- />
-
-</configure>
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/ftesting.zcml)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/ftesting.zcml 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,140 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+ xmlns:meta="http://namespaces.zope.org/meta"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ i18n_domain="zope"
+ package="z3c.layer.minimal.tests">
+
+ <include package="zope.app.zcmlfiles" />
+
+ <include package="zope.app.securitypolicy" file="meta.zcml" />
+ <include package="zope.app.authentication" />
+ <securityPolicy
+ component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy" />
+
+ <include package="zope.securitypolicy" />
+
+ <role id="zope.Anonymous" title="Everybody"
+ description="All users have this role implicitly" />
+
+ <role id="zope.Manager" title="Site Manager" />
+
+ <principal
+ id="zope.manager"
+ title="Administrator"
+ login="mgr"
+ password="mgrpw" />
+
+ <grant
+ role="zope.Manager"
+ principal="zope.manager"
+ />
+
+ <unauthenticatedPrincipal
+ id="zope.anybody"
+ title="Unauthenticated User" />
+
+ <unauthenticatedGroup
+ id="zope.Anybody"
+ title="Unauthenticated Users"
+ />
+
+ <authenticatedGroup
+ id="zope.Authenticated"
+ title="Authenticated Users"
+ />
+
+ <everybodyGroup
+ id="zope.Everybody"
+ title="All Users"
+ />
+
+ <grantAll role="zope.Manager" />
+
+ <include package="zope.app.form.browser" />
+ <include package="zope.app.http.exception" />
+ <include package="zope.app.publication" />
+ <include package="zope.app.publisher.browser" />
+ <include package="zope.traversing" />
+ <include package="zope.traversing.browser" />
+ <include package="z3c.layer.minimal" />
+
+ <interface
+ interface="z3c.layer.minimal.tests.IMinimalTestingSkin"
+ type="zope.publisher.interfaces.browser.IBrowserSkinType"
+ name="MinimalTesting"
+ />
+
+ <browser:page
+ for="*"
+ name="standard_macros"
+ permission="zope.Public"
+ class=".TestingStandardMacros"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ allowed_interface="zope.interface.common.mapping.IItemMapping"
+ />
+
+ <browser:page
+ for="*"
+ name="page_macros"
+ permission="zope.Public"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ template="page_macros.pt"
+ />
+
+ <browser:page
+ for="*"
+ name="view_macros"
+ permission="zope.Public"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ template="view_macros.pt"
+ />
+
+ <browser:page
+ for="*"
+ name="error_macros"
+ permission="zope.Public"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ template="error_macros.pt"
+ />
+
+ <browser:page
+ for="*"
+ name="page.html"
+ permission="zope.ManageContent"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ template="page.pt"
+ />
+
+ <browser:page
+ for="*"
+ name="forbidden.html"
+ permission="zope.View"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ class=".UnauthorizedPage"
+ />
+
+ <browser:page
+ for="*"
+ name="usererror.html"
+ permission="zope.View"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ class=".UserErrorPage"
+ />
+
+ <browser:page
+ for="*"
+ name="systemerror.html"
+ permission="zope.View"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ class=".SystemErrorPage"
+ />
+
+ <browser:page
+ for="*"
+ name="container_contents.html"
+ permission="zope.View"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ class=".ContainerContentsPage"
+ />
+
+</configure>
Deleted: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py
===================================================================
--- z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/test_layer.py 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,34 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2005 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-$Id: test_layer.py 73898 2007-03-29 09:10:19Z shh $
-"""
-
-import unittest
-from zope.app.testing import functional
-
-functional.defineLayer('TestLayer', 'ftesting.zcml')
-
-
-def test_suite():
- suite = unittest.TestSuite()
-
- s = functional.FunctionalDocFileSuite('../README.txt')
- s.layer = TestLayer
- suite.addTest(s)
-
- return suite
-
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/tests/test_layer.py)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/tests/test_layer.py 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,46 @@
+##############################################################################
+#
+# Copyright (c) 2007-2010 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id: test_layer.py 73898 2007-03-29 09:10:19Z shh $
+"""
+
+import re
+import unittest
+from zope.testing import renormalizing
+from zope.app.testing import functional
+
+
+functional.defineLayer('TestLayer', 'ftesting.zcml')
+
+
+checker = renormalizing.RENormalizing([
+ (re.compile(r'httperror_seek_wrapper:', re.M), 'HTTPError:'),
+ ])
+
+
+def create_suite(*args, **kw):
+ suite = functional.FunctionalDocFileSuite(*args, **kw)
+ suite.layer = TestLayer
+ return suite
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(create_suite('../README.txt', checker=checker))
+ suite.addTest(create_suite('bugfixes.txt'))
+ return suite
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
Deleted: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml
===================================================================
--- z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/zope.app.publication.zcml 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,14 +0,0 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:browser="http://namespaces.zope.org/browser"
- i18n_domain="z3c">
-
- <browser:view
- for="zope.app.publication.interfaces.IFileContent"
- provides="zope.publisher.interfaces.browser.IBrowserPublisher"
- class="zope.app.publication.traversers.FileContentTraverser"
- permission="zope.Public"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
-</configure>
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/zope.app.publication.zcml)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.app.publication.zcml 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,14 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ i18n_domain="z3c">
+
+ <view
+ for="zope.app.publication.interfaces.IFileContent"
+ type="z3c.layer.minimal.IMinimalBrowserLayer"
+ provides="zope.publisher.interfaces.browser.IBrowserPublisher"
+ factory="zope.app.publication.traversers.FileContentTraverser"
+ permission="zope.Public"
+ allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher"
+ />
+
+</configure>
Deleted: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml
===================================================================
--- z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/zope.traversing.browser.zcml 2010-04-17 21:53:40 UTC (rev 111018)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml 2010-04-17 23:01:47 UTC (rev 111020)
@@ -1,85 +0,0 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:browser="http://namespaces.zope.org/browser"
- i18n_domain="z3c">
-
- <adapter
- for="zope.interface.Interface
- z3c.layer.minimal.IMinimalBrowserLayer"
- provides="zope.publisher.interfaces.browser.IBrowserPublisher"
- factory="zope.app.publication.traversers.SimpleComponentTraverser"
- permission="zope.Public"
- trusted="True"
- />
-
- <adapter
- for="zope.app.container.interfaces.IItemContainer
- z3c.layer.minimal.IMinimalBrowserLayer"
- provides="zope.publisher.interfaces.browser.IBrowserPublisher"
- factory="zope.app.container.traversal.ItemTraverser"
- permission="zope.Public"
- trusted="True"
- />
-
- <adapter
- for="zope.app.container.interfaces.ISimpleReadContainer
- z3c.layer.minimal.IMinimalBrowserLayer"
- provides="zope.publisher.interfaces.browser.IBrowserPublisher"
- factory="zope.app.container.traversal.ItemTraverser"
- permission="zope.Public"
- trusted="True"
- />
-
- <view
- for="*"
- name="absolute_url"
- factory="zope.traversing.browser.AbsoluteURL"
- permission="zope.Public"
- allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
- type="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
- <view
- for="*"
- factory="zope.traversing.browser.AbsoluteURL"
- permission="zope.Public"
- provides="zope.traversing.browser.interfaces.IAbsoluteURL"
- type="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
- <view
- for="zope.traversing.interfaces.IContainmentRoot"
- name="absolute_url"
- factory="zope.traversing.browser.SiteAbsoluteURL"
- permission="zope.Public"
- allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
- type="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
- <view
- for="zope.traversing.interfaces.IContainmentRoot"
- factory="zope.traversing.browser.SiteAbsoluteURL"
- permission="zope.Public"
- provides="zope.traversing.browser.interfaces.IAbsoluteURL"
- type="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
- <browser:page
- for="*"
- name="absolute_url"
- class="zope.traversing.browser.AbsoluteURL"
- permission="zope.Public"
- allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
- <browser:page
- for="zope.traversing.interfaces.IContainmentRoot"
- name="absolute_url"
- class="zope.traversing.browser.SiteAbsoluteURL"
- permission="zope.Public"
- allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
- layer="z3c.layer.minimal.IMinimalBrowserLayer"
- />
-
-</configure>
Copied: z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml (from rev 111019, z3c.layer.minimal/branches/1.0/src/z3c/layer/minimal/zope.traversing.browser.zcml)
===================================================================
--- z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml (rev 0)
+++ z3c.layer.minimal/tags/1.0.2/src/z3c/layer/minimal/zope.traversing.browser.zcml 2010-04-17 23:01:47 UTC (rev 111020)
@@ -0,0 +1,82 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ i18n_domain="z3c">
+
+ <adapter
+ for="zope.interface.Interface
+ z3c.layer.minimal.IMinimalBrowserLayer"
+ provides="zope.publisher.interfaces.browser.IBrowserPublisher"
+ factory="zope.app.publication.traversers.SimpleComponentTraverser"
+ permission="zope.Public"
+ />
+
+ <adapter
+ for="zope.app.container.interfaces.IItemContainer
+ z3c.layer.minimal.IMinimalBrowserLayer"
+ provides="zope.publisher.interfaces.browser.IBrowserPublisher"
+ factory="zope.app.container.traversal.ItemTraverser"
+ permission="zope.Public"
+ />
+
+ <adapter
+ for="zope.app.container.interfaces.ISimpleReadContainer
+ z3c.layer.minimal.IMinimalBrowserLayer"
+ provides="zope.publisher.interfaces.browser.IBrowserPublisher"
+ factory="zope.app.container.traversal.ItemTraverser"
+ permission="zope.Public"
+ />
+
+ <view
+ for="*"
+ name="absolute_url"
+ factory="zope.traversing.browser.AbsoluteURL"
+ permission="zope.Public"
+ allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
+ type="z3c.layer.minimal.IMinimalBrowserLayer"
+ />
+
+ <view
+ for="*"
+ factory="zope.traversing.browser.AbsoluteURL"
+ permission="zope.Public"
+ provides="zope.traversing.browser.interfaces.IAbsoluteURL"
+ type="z3c.layer.minimal.IMinimalBrowserLayer"
+ />
+
+ <view
+ for="zope.traversing.interfaces.IContainmentRoot"
+ name="absolute_url"
+ factory="zope.traversing.browser.SiteAbsoluteURL"
+ permission="zope.Public"
+ allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
+ type="z3c.layer.minimal.IMinimalBrowserLayer"
+ />
+
+ <view
+ for="zope.traversing.interfaces.IContainmentRoot"
+ factory="zope.traversing.browser.SiteAbsoluteURL"
+ permission="zope.Public"
+ provides="zope.traversing.browser.interfaces.IAbsoluteURL"
+ type="z3c.layer.minimal.IMinimalBrowserLayer"
+ />
+
+ <browser:page
+ for="*"
+ name="absolute_url"
+ class="zope.traversing.browser.AbsoluteURL"
+ permission="zope.Public"
+ allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ />
+
+ <browser:page
+ for="zope.traversing.interfaces.IContainmentRoot"
+ name="absolute_url"
+ class="zope.traversing.browser.SiteAbsoluteURL"
+ permission="zope.Public"
+ allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
+ layer="z3c.layer.minimal.IMinimalBrowserLayer"
+ />
+
+</configure>
More information about the checkins
mailing list