[Grok-dev] login event and subscribe to

Sebastian Ware sebastian at urbantalk.se
Tue Jun 9 07:58:09 EDT 2009


I think you could use the event [IAuthenticatedPrincipalCreated]. Look  
in [zope.app.authentication], the README.txt shares the following:


Authenticated Principal Creates Events
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We can verify that the appropriate event was published::

   >>> [event] = getEvents(interfaces.IAuthenticatedPrincipalCreated)
   >>> event.principal is principal
   True
   >>> event.info
   PrincipalInfo('bob')
   >>> event.request is request
   True

The info object has the id, title, and description of the principal.   
The info
object is also generated by the authenticator plugin, so the plugin may
itself have provided additional information on the info object::

   >>> event.info.title
   'Bob'
   >>> event.info.id # does not include pau prefix
   'bob'
   >>> event.info.description
   ''


Mvh Sebastian

9 jun 2009 kl. 13.50 skrev Jens Adner:

> Hello,
>
> I've got a question about the event "IPrincipalCreated".
>
> In my app, I use this event for putting a role to a principal:
>
> @grok.subscribe(IPrincipalCreated)
> def update_principal_info_from_ldap(event):
>  principal = event.principal
>  ...
>  prm.assignRoleToPrincipal("adminrole", principal.id)
>
> All works fine.
>
> But this event is fireing up for every grok view. I need an event for
> saving some data (login time, logout time, etc.) only for the first
> successful auth of the user.
>
> I don't understand why the principal is creating for every view again
> and again or why the event "knock on my door".
>
> Has anyone some hints? Is there another event I could use for logging
> user infos at login and logout?
>
> Thanks
> Jens
>
>
>
> -- 
> ++++++++ Jens Adner IuK-Zentrum Fachhochschule Schmalkalden +++++++++
> ++++++++ Fon: +49 3683688 9201  Fax: +49 3683688 989201     +++++++++
> _______________________________________________
> Grok-dev mailing list
> Grok-dev at zope.org
> http://mail.zope.org/mailman/listinfo/grok-dev



More information about the Grok-dev mailing list