[z3-checkins] r18975 - z3/Five/branch/efge-object-event
efge at codespeak.net
efge at codespeak.net
Wed Oct 26 00:04:38 CEST 2005
Author: efge
Date: Wed Oct 26 00:04:38 2005
New Revision: 18975
Modified:
z3/Five/branch/efge-object-event/event.py
Log:
Cleanups.
Don't eventify executable ownership fixups for now.
Modified: z3/Five/branch/efge-object-event/event.py
==============================================================================
--- z3/Five/branch/efge-object-event/event.py (original)
+++ z3/Five/branch/efge-object-event/event.py Wed Oct 26 00:04:38 2005
@@ -228,6 +228,8 @@
##################################################
# Monkey patches
+_marker = object()
+
# From ObjectManager
def manage_afterAdd(self, item, container):
# Don't do recursion anymore, a subscriber does that.
@@ -246,12 +248,6 @@
# A warning is sent by the subscriber
pass
-# XXX other recursive dispatching:
-# changeOwnership (called by manage_takeOwnership)
-# manage_fixupOwnershipAfterAdd
-# _deleteOwnershipAfterAdd (called by manage_fixupOwnershipAfterAdd)
-
-
# From ObjectManager
def _setObject(self, id, object, roles=None, user=None, set_owner=1,
suppress_events=False):
@@ -259,10 +255,11 @@
Also sends IObjectAddedEvent.
"""
+ ob = object # better name, keep original function signature
v = self._checkId(id)
if v is not None:
id = v
- t = getattr(object, 'meta_type', None)
+ t = getattr(ob, 'meta_type', None)
# If an object by the given id already exists, remove it.
for object_info in self._objects:
@@ -271,29 +268,29 @@
break
if not suppress_events:
- notify(ObjectWillBeAddedEvent(object, self, id))
+ notify(ObjectWillBeAddedEvent(ob, self, id))
self._objects = self._objects + ({'id': id, 'meta_type': t},)
- self._setOb(id, object)
- object = self._getOb(id)
+ self._setOb(id, ob)
+ ob = self._getOb(id)
- if not suppress_events:
- notify(ObjectAddedEvent(object, self, id))
+ if set_owner:
+ # TODO: eventify manage_fixupOwnershipAfterAdd
+ # This will be called for a copy/clone, or a normal _setObject.
+ ob.manage_fixupOwnershipAfterAdd()
+
+ if set_owner:
+ # Try to give user the local role "Owner", but only if
+ # no local roles have been set on the object yet.
+ if getattr(ob, '__ac_local_roles__', _marker) is None:
+ user = getSecurityManager().getUser()
+ if user is not None:
+ userid = user.getId()
+ if userid is not None:
+ ob.manage_setLocalRoles(userid, ['Owner'])
- # XXX eventify manage_fixupOwnershipAfterAdd and local role Owner
- if 0:
- if set_owner:
- object.manage_fixupOwnershipAfterAdd()
-
- # Try to give user the local role "Owner", but only if
- # no local roles have been set on the object yet.
- if hasattr(object, '__ac_local_roles__'):
- if object.__ac_local_roles__ is None:
- user = getSecurityManager().getUser()
- if user is not None:
- userid = user.getId()
- if userid is not None:
- object.manage_setLocalRoles(userid, ['Owner'])
+ if not suppress_events:
+ notify(ObjectAddedEvent(ob, self, id))
# manage_afterAdd was here
@@ -303,6 +300,7 @@
# From BTreeFolder2
def BT_setObject(self, id, object, roles=None, user=None, set_owner=1,
suppress_events=False):
+ ob = object # better name, keep original function signature
v = self._checkId(id)
if v is not None:
id = v
@@ -312,28 +310,28 @@
self._delObject(id)
if not suppress_events:
- notify(ObjectWillBeAddedEvent(object, self, id))
+ notify(ObjectWillBeAddedEvent(ob, self, id))
- self._setOb(id, object)
- object = self._getOb(id)
+ self._setOb(id, ob)
+ ob = self._getOb(id)
- if not suppress_events:
- notify(ObjectAddedEvent(object, self, id))
+ if set_owner:
+ # TODO: eventify manage_fixupOwnershipAfterAdd
+ # This will be called for a copy/clone, or a normal _setObject.
+ ob.manage_fixupOwnershipAfterAdd()
+
+ if set_owner:
+ # Try to give user the local role "Owner", but only if
+ # no local roles have been set on the object yet.
+ if getattr(ob, '__ac_local_roles__', _marker) is None:
+ user = getSecurityManager().getUser()
+ if user is not None:
+ userid = user.getId()
+ if userid is not None:
+ ob.manage_setLocalRoles(userid, ['Owner'])
- # XXX eventify manage_fixupOwnershipAfterAdd and local role Owner
- if 0:
- if set_owner:
- object.manage_fixupOwnershipAfterAdd()
-
- # Try to give user the local role "Owner", but only if
- # no local roles have been set on the object yet.
- if hasattr(object, '__ac_local_roles__'):
- if object.__ac_local_roles__ is None:
- user = getSecurityManager().getUser()
- if user is not None:
- userid = user.getId()
- if userid is not None:
- object.manage_setLocalRoles(userid, ['Owner'])
+ if not suppress_events:
+ notify(ObjectAddedEvent(ob, self, id))
# manage_afterAdd was here
@@ -542,7 +540,7 @@
# try to make ownership explicit so that it gets carried
# along to the new location if needed.
- ob.manage_changeOwnershipType(explicit=1) # XXX event?
+ ob.manage_changeOwnershipType(explicit=1)
orig_container._delObject(orig_id, suppress_events=True)
ob = aq_base(ob)
@@ -551,13 +549,11 @@
self._setObject(id, ob, set_owner=0, suppress_events=True)
ob = self._getOb(id)
- notify(ObjectMovedEvent(ob, orig_container, orig_id,
- self, id))
+ notify(ObjectMovedEvent(ob, orig_container, orig_id, self, id))
ob._postCopy(self, op=1)
-
# try to make ownership implicit if possible
- ob.manage_changeOwnershipType(explicit=0) # XXX event?
+ ob.manage_changeOwnershipType(explicit=0)
if REQUEST is not None:
REQUEST['RESPONSE'].setCookie('__cp', 'deleted',
More information about the z3-checkins
mailing list