[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Container/Find - FindAdapter.py:1.1.2.2.4.1

Jim Fulton jim@zope.com
Fri, 26 Apr 2002 14:23:14 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Container/Find
In directory cvs.zope.org:/tmp/cvs-serv26237/lib/python/Zope/App/OFS/Container/Find

Modified Files:
      Tag: SecurityProxy-branch
	FindAdapter.py 
Log Message:
Changed security code to use security proxies and name-based
security. This has pretty far-reaching implications:

- You now protect names/operations, *not* values. This means it's as
  easy yo protect data attributes that have simple values as it is to
  protect methods.

- There is no longer a __permissions__ attribute. :)

- There is no longer a validate method in either security managers or
  policies. 

- No more need to have a special compiler for restricted code.
  In exchange, lots of objects are proxies and code sometimes needs to
  be prepared to remove proxies.

In addition:

- Basic objects (None, strings, numbers, etc.) are not wrapped in
  context wrappers.

- There is a test that fails unless Python 2.3 is used.



=== Zope3/lib/python/Zope/App/OFS/Container/Find/FindAdapter.py 1.1.2.2 => 1.1.2.2.4.1 ===
 from Zope.App.OFS.Container.IContainer import IReadContainer
 # XXX need to do this manually to wrap objects
-from Zope.ContextWrapper import Wrapper
+from Zope.Proxy.ContextWrapper import ContextWrapper
 
 class FindAdapter(object):
 
@@ -42,7 +42,7 @@
         result = []
         container = self._context
         for id, object in container.objectItems():
-            object = Wrapper(object, container, name=id)
+            object = ContextWrapper(object, container, name=id)
             _find_helper(id, object, container,
                          id_filters, object_filters,
                          result)
@@ -70,7 +70,7 @@
 
     container = object
     for id, object in container.objectItems():
-        object = Wrapper(object, container, name=id)
+        object = ContextWrapper(object, container, name=id)
         _find_helper(id, object, container, id_filters, object_filters, result)
 
 class SimpleIdFindFilter(object):