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
This: 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... Rupert _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users