Florian Lindner wrote:
> Am Sonntag, 5. Februar 2006 22:37 schrieb Stephan Richter:
>> On Sunday 05 February 2006 12:34, Florian Lindner wrote:
>>> I've managed to add a principal to a principal folder inside a PAU:
>>>   pau = getUtility(IAuthentication)
>>>   pfolder = pau.keys()[0]
>>>   principal = InternalPrincipal("def", "pwd123","a title", "a
>>> description") pfolder["def"] = principal
>>> but I doubt that the most elegant way. How can I achieve do it more or
>>> less agnostic form the principal source (or a least from the name and
>>> ordinal postion inside PAU)?
>> Basically, your application should know the location of the Authentication
>> Utility and the name of the principal folder. Also note that the principal
>> class is principal folder specific.
> Ok, so the way above is the way to go?
> Why is the principal class folder specific?
> BTW: Why does z.a.authentication.principalfolder.InternalPrincipal does not 
> implement z.security.interfaces.IPrincipal? Or let 
> z.a.authentication.principalfolder.IInternalPrincipal derive from IPrincipal?
> Florian
> _______________________________________________
> Zope3-users mailing list
> Zope3-users@zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users


    from zope.interface import directlyProvides

    pau = getUtility(IAuthentication)

    for plugin in pau.authenticatorPlugins:
        if directlyProvides(plugin, IMyMarkerInterface):
            pfolder = plugin

Seems to me to avoid embarrassment when there are two authenticators in
the stack in pau and you can't guarantee the position of the one you want.

I think...


Zope3-users mailing list

Reply via email to