Creates 'found' principals.

A 'found' principal is created as a result of a principal lookup.

To use the factory, create it with the info (interfaces.IPrincipalInfo) of the principal to create:

>>> info = PrincipalInfo('users.sam', 'sam', 'Sam', 'A site user.')
>>> factory = FoundPrincipalFactory(info)

The factory must be called with a pluggable-authentication object:

>>> class Auth:
...     prefix = 'auth.'
>>> auth = Auth()
>>> principal = factory(auth)

The factory uses the pluggable-authentication object and the info to create a principal with the same ID, title, and description:

>>> principal.title
>>> principal.description
'A site user.'

It also fires a FoundPrincipalCreatedEvent:

>>> from zope.component.eventtesting import getEvents
>>> [event] = getEvents(interfaces.IFoundPrincipalCreated)
>>> event.principal is principal, event.authentication is auth
(True, True)

Listeners can subscribe to this event to perform additional operations when the 'found' principal is created.

For information on how factories are used in the authentication process, see README.txt.

Base classes

Implemented Interfaces


There are no attributes in this class.


There are no methods in this class.

Known Subclasses

There are no known subclasses.