[Zope3-dev] Re: Mini-proposal: zope.app.authentication group events

Gary Poster gary at zope.com
Thu Jan 12 20:42:50 EST 2006


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


More information about the Zope3-dev mailing list