At 01:56 PM 5/25/00 +0400, Jephte CLAIN wrote:
>When I don't wrap items like this, I get strange unauthorized errors.
>Only the super user can use the items. All the other users (Managers or
>not) can't.

In normal usage, one only accesses a rack from or in a Specialist.
Specialists wrap the objects in the context of the specialist for you.

I've just checked the code, however, and notice that
Specialist.__bobo_traverse__ does this wrapping, not Specialist.getItem, so
I will fix this in the next release.  That way, calling getItem on the
Specialist will ensure you have proper context.  Patch follows...

RCS file: /u/idsuser/REPOSITORY/ZProducts/ZPatterns/,v
retrieving revision 1.7
diff -u -r1.7
---      2000/05/18 05:24:49     1.7
+++      2000/05/25 12:57:35
@@ -1,7 +1,6 @@
 from PlugIns import PlugInGroup
 from DataManagers import DataManager
 from Globals import HTMLFile, default__class_init__
 _marker = []
@@ -23,7 +22,7 @@
         if ob is _marker:
             ob = self.getItem(name)
             if ob is not None:
-                return getattr(ob,'aq_base',ob).__of__(self)
+                return ob
             raise 'NotFound'
         return ob
@@ -32,7 +31,8 @@
             return self.retrieveItem(key) # XXX need DTML check?
         for rack in self.rackList:
             item = rack.__of__(self).getItem(key)
-            if item is not None: return item        
+            if item is not None:
+                return getattr(item,'aq_base',item).__of__(self)
     def newItem(self, key=None):
         """Create a new item"""

Zope-Dev maillist  -  [EMAIL PROTECTED]
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to