[Checkins] SVN: z3c.traverser/trunk/ added principal namespace,
version bump
Bernd Dorn
bernd.dorn at lovelysystems.com
Tue May 1 07:50:25 EDT 2007
Log message for revision 74961:
added principal namespace, version bump
Changed:
A z3c.traverser/trunk/CHANGES.txt
U z3c.traverser/trunk/setup.py
A z3c.traverser/trunk/src/z3c/traverser/configure.zcml
A z3c.traverser/trunk/src/z3c/traverser/namespace.py
A z3c.traverser/trunk/src/z3c/traverser/namespace.txt
U z3c.traverser/trunk/src/z3c/traverser/tests.py
-=-
Added: z3c.traverser/trunk/CHANGES.txt
===================================================================
--- z3c.traverser/trunk/CHANGES.txt 2007-05-01 11:22:00 UTC (rev 74960)
+++ z3c.traverser/trunk/CHANGES.txt 2007-05-01 11:50:25 UTC (rev 74961)
@@ -0,0 +1,9 @@
+=======
+Changes
+=======
+
+After 1.1.1 (1.1.2)
+===================
+
+- Added principal namespace, see namespace.txt
+
Property changes on: z3c.traverser/trunk/CHANGES.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: z3c.traverser/trunk/setup.py
===================================================================
--- z3c.traverser/trunk/setup.py 2007-05-01 11:22:00 UTC (rev 74960)
+++ z3c.traverser/trunk/setup.py 2007-05-01 11:50:25 UTC (rev 74961)
@@ -3,7 +3,7 @@
setup(
name = 'z3c.traverser',
- version = '0.1.1',
+ version = '0.1.2',
author = "Zope Community",
author_email = "zope3-dev at zope.org",
description = open("README.txt").read(),
Added: z3c.traverser/trunk/src/z3c/traverser/configure.zcml
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/configure.zcml 2007-05-01 11:22:00 UTC (rev 74960)
+++ z3c.traverser/trunk/src/z3c/traverser/configure.zcml 2007-05-01 11:50:25 UTC (rev 74961)
@@ -0,0 +1,10 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope">
+
+ <view
+ name="principal" type="*"
+ provides="zope.traversing.interfaces.ITraversable" for="*"
+ factory=".namespace.principal"
+ />
+
+</configure>
Property changes on: z3c.traverser/trunk/src/z3c/traverser/configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.traverser/trunk/src/z3c/traverser/namespace.py
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/namespace.py 2007-05-01 11:22:00 UTC (rev 74960)
+++ z3c.traverser/trunk/src/z3c/traverser/namespace.py 2007-05-01 11:50:25 UTC (rev 74961)
@@ -0,0 +1,13 @@
+from zope.traversing.namespace import view
+from zope.publisher.interfaces import Unauthorized
+
+class principal(view):
+
+ """a principal namespace"""
+
+ def traverse(self, name, ignored):
+ self.request.shiftNameToApplication()
+ pid = self.request.principal.id
+ if name != pid:
+ raise Unauthorized("++principal++%s" % name)
+ return self.context
Property changes on: z3c.traverser/trunk/src/z3c/traverser/namespace.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added: z3c.traverser/trunk/src/z3c/traverser/namespace.txt
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/namespace.txt 2007-05-01 11:22:00 UTC (rev 74960)
+++ z3c.traverser/trunk/src/z3c/traverser/namespace.txt 2007-05-01 11:50:25 UTC (rev 74961)
@@ -0,0 +1,40 @@
+=====================
+Additional Namespaces
+=====================
+
+Principal
+=========
+
+The ``principal`` namespace allows to differentiate between usernames
+in the url. This is usefull for caching on a per principal basis. The
+namespace itself doesn't change anything. It just checks if the
+principal is the one that is logged in.
+
+ >>> from z3c.traverser import namespace
+ >>> from zope.publisher.browser import TestRequest
+ >>> class Request(TestRequest):
+ ... principal = None
+ ...
+ ... def shiftNameToApplication(self):
+ ... pass
+
+ >>> class Principal(object):
+ ... def __init__(self, id):
+ ... self.id = id
+
+ >>> pid = 'something'
+ >>> r = Request()
+ >>> r.principal = Principal('anonymous')
+
+If we have the wrong principal we get an Unauthorized exception.
+
+ >>> ns = namespace.principal(object(), r)
+ >>> ns.traverse('another', None)
+ Traceback (most recent call last):
+ ...
+ Unauthorized: ++principal++another
+
+Otherwise not
+
+ >>> ns.traverse('anonymous', None)
+ <object object at ...>
Property changes on: z3c.traverser/trunk/src/z3c/traverser/namespace.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: z3c.traverser/trunk/src/z3c/traverser/tests.py
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/tests.py 2007-05-01 11:22:00 UTC (rev 74960)
+++ z3c.traverser/trunk/src/z3c/traverser/tests.py 2007-05-01 11:50:25 UTC (rev 74961)
@@ -25,9 +25,13 @@
def test_suite():
return unittest.TestSuite((
doctest.DocFileSuite(
- 'README.txt',
- setUp=testing.setUp, tearDown=testing.tearDown,
- optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+ 'README.txt',
+ setUp=testing.setUp, tearDown=testing.tearDown,
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+ doctest.DocFileSuite(
+ 'namespace.txt',
+ setUp=testing.setUp, tearDown=testing.tearDown,
+ optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
))
if __name__ == '__main__':
More information about the Checkins
mailing list