On Jan 12, 2006, at 7:18 PM, Florent Guillaume wrote:

Gary Poster wrote:
On Jan 12, 2006, at 2:11 PM, Gary Poster wrote:
def IPrincipalAddedToGroup(interface.Inteface):
group = interface.Attribute('the group to which the principal was added')
    principal = interface.Attribute('the principal added')

def IPrincipalRemovedFromGroup(interface.Inteface):
group = interface.Attribute('the group from which the principal was removed')
    principal = interface.Attribute('the principal removed')
Small change: clarify that these are ids, and allow multiple principals to be specified.
def IPrincipalAddedToGroup(interface.Inteface):
group_id = interface.Attribute('the id of the group to which the principal was added') principal_ids = interface.Attribute('an iterable of one or more ids of principals added')
def IPrincipalRemovedFromGroup(interface.Inteface):
group_id = interface.Attribute('the id of the group from which the principal was removed') principal_ids = interface.Attribute('an iterable of one or more ids of principals removed')

+1

Cool.

But why the ids and not the objects themselves?

It's driven by the interfaces and implementations around it . Since Zope 3 generates the principal objects on the fly and actually only manipulates principal ids for the persistent data, a number of situations will not have objects already created for the pertinent principals. Therefore this is just what falls out naturally.

Wouldn't it allow for more flexibility?

You can always convert an id to a principal (if it's a valid id) so I don't think so.

Gary
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to