[Grok-dev] login event and subscribe to
sebastian at urbantalk.se
Tue Jun 9 10:08:58 EDT 2009
I use custom login views so I don't have that problem. In the 4th line
I set the name of the login page, which is called automatically if you
pau['principals'] = PrincipalFolder()
pau.authenticatorPlugins = ('principals',)
pau['session'] = session = SessionCredentialsPlugin()
session.loginpagename = 'login'
pau.credentialsPlugins = ('No Challenge if Authenticated',
You'll need the page templates that render the form too:
def update(self, login_submit=None, login=None):
# XXX: need to display some kind of feedback when the login
and login_submit is not None):
# I have logged in and this is
# were the magic happens... such as...
session = getUtility(IAuthentication)['session']
self.redirect(self.application_url() + '/login')
9 jun 2009 kl. 15.49 skrev Jens Adner:
> After changing the code to "IAuthenticatedPrincipalCreated", no
> This event is initiating every view too.
> I want write some infos to a mysql database as result of auth event:
> uid = principal.id.split('.')[-1]
> utils.logme("myapp","login",uid,"ip address")
> Currently, every browser request writes the data.
> Best regards
> Sebastian Ware schrieb:
>> I think you could use the event [IAuthenticatedPrincipalCreated].
>> 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
>>>>> event.request is request
>> 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
>> itself have provided additional information on the info object::
>>>>> event.info.id # does not include pau prefix
>> Mvh Sebastian
>> 9 jun 2009 kl. 13.50 skrev Jens Adner:
>>> I've got a question about the event "IPrincipalCreated".
>>> In my app, I use this event for putting a role to a principal:
>>> 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
>>> 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
>>> and again or why the event "knock on my door".
>>> Has anyone some hints? Is there another event I could use for
>>> user infos at login and logout?
>>> ++++++++ Jens Adner IuK-Zentrum Fachhochschule Schmalkalden +++++++
>>> ++++++++ Fon: +49 3683688 9201 Fax: +49 3683688 989201 +++++++
>>> Grok-dev mailing list
>>> Grok-dev at zope.org
> ++++++++ Jens Adner IuK-Zentrum Fachhochschule Schmalkalden +++++++++
> ++++++++ Fon: +49 3683688 9201 Fax: +49 3683688 989201 +++++++++
> Grok-dev mailing list
> Grok-dev at zope.org
More information about the Grok-dev