Как ловить IAuthenticatedPrincipalCreated

2 views
Skip to first unread message

Dmitry Shamov

unread,
Aug 16, 2010, 9:38:52 AM8/16/10
to zope...@googlegroups.com
Есть мысль делать setup сайта и домашнего каталога пользователя
отлавливая IAuthenticatedPrincipalCreated
Вот только как это делать и где это ПРАВИЛЬНО отлавливать не найду.
Если есть пример ткните носом плиз.

--
С уважением, Дмитрий

Ilshad Khabibullin

unread,
Aug 16, 2010, 9:54:05 AM8/16/10
to zope...@googlegroups.com
логичнее сделать свое событие регистрации нового пользователя, и на него уже подписывать что нужно.

16 августа 2010 г. 19:38 пользователь Dmitry Shamov <dem...@gmail.com> написал:

--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru



--
Ilshad R. Khabibullin
http://astoon.zwiki.org
+7 922 600 56 06

dem...@gmail.com

unread,
Aug 16, 2010, 10:42:16 AM8/16/10
to Russian Zope3 group

On 16 авг, 17:54, Ilshad Khabibullin <astoon....@gmail.com> wrote:
> логичнее сделать свое событие регистрации нового пользователя, и на него уже
> подписывать что нужно.

Я регистрирую пользователей вручную в securitypolicy.zcml
Это интранет проект, я могу себе это позволить. Точнее я не до конца
разобрался с PAU.

Как альтернативу я могу делать некий view который оббежит всех и все
им настроить.

На данный момент я в configure.zcml вписал что-то вроде:

<subscriber
for="zope.app.authentication.interfaces.IPrincipalCreated"
handler=".subscriber.principalCreated"
/>

в subscriber.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""Some event subscription"""

def principalCreated(event):
print "!!!!> logged in event=",event

Но ничего не появляется в консоли.

> --
> Ilshad R. Khabibullinhttp://astoon.zwiki.org

dem...@gmail.com

unread,
Aug 16, 2010, 10:46:49 AM8/16/10
to Russian Zope3 group
Ага, прочитав предыдущие сообщения попробовал перехватить
zope.app.publication.interfaces.IBeforeTraverseEvent

<subscriber
for="zope.app.publication.interfaces.IBeforeTraverseEvent"
handler=".subscriber.bte"
/>

def bte(event):


print "!!!!> logged in event=",event

Все сработало.

Таким образом вопрос сводится к тому:

что выбрать из
IFoundPrincipalCreated,IPrincipalCreated,IAuthenticatedPrincipalCreated
И в каких случаях они срабатывают?
Хочется чтобы они зажигались при обработке @@login.html

Ilshad Khabibullin

unread,
Aug 16, 2010, 10:47:00 AM8/16/10
to Ru Zope3 group


---------- Пересланное сообщение ----------
От кого: <astoon.net@gmail.com>
Дата: 16 августа 2010 г. 20:46
Тема: Re: [zope3ru] Re: Как ловить IAuthenticatedPrincipalCreated
Кому: "dem...@gmail.com" <dem...@gmail.com>


а как вызываете событие ?

16.08.2010 20:42 пользователь "dem...@gmail.com" <dem...@gmail.com> написал:

>
>
>
>
> On 16 авг, 17:54, Ilshad Khabibullin astoon....@gmail.com> wrote:
>
> > логичнее сделать свое событие регистрации нового пользователя, и на него уже
>
> > подписывать что нужно.
>
>
>
> Я регистрирую пользователей вручную в securitypolicy.zcml
>
> Это интранет проект, я могу себе это позволить. Точнее я не до конца
>
> разобрался с PAU.
>
>
>
> Как альтернативу я могу делать некий view который оббежит всех и все
>
> им настроить.
>
>
>
> На данный момент я в configure.zcml вписал что-то вроде:
>
>
>
>
>        for="zope.app.authentication.interfaces.IPrincipalCreated"
>
>        handler=".subscriber.principalCreated"
>
>        />
>
>
>
> в subscriber.py
>
>
>
> #!/usr/bin/python
>
> # -*- coding: UTF-8 -*-
>
> """Some event subscription"""
>
>
>
> def principalCreated(event):
>
>        print "!!!!> logged in event=",event
>
>
>
>
>
>
>
> Но ничего не появляется в консоли.
>
>
>
> > --
>
> > Ilshad R. Khabibullinhttp://astoon.zwiki.org
>
> > +7 922 600 56 06
>
>
>
> --
>
> Russian Zope3 group http://zope3.ru/
>
> Для отправки сообщений zope...@googlegroups.com
>
> Отписаться zope3-ru-u...@googlegroups.com
>
> Архив http://groups.google.com/group/zope3-ru



--
Ilshad R. Khabibullin

dem...@gmail.com

unread,
Aug 16, 2010, 10:51:56 AM8/16/10
to Russian Zope3 group
> а как вызываете событие ?

Я подозревал, что его создает zope.app.authentication

Я ошибаюсь?

Тогда зачем оно там определено? На будущее?

Получается надо писать свой PAU для credentials?

Ilshad Khabibullin

unread,
Aug 16, 2010, 11:44:13 AM8/16/10
to zope...@googlegroups.com
Это события для PAU. Они вызываеются, IAuthenticatedPrincipalCreated - в ходе процедуры аутентификации, IFoundPrincipalCreated в результате операции поиска по id. Вам нужно первое. Смущает, правда, то, что вызывается оно на каждом запросе, поступающем от авторизованного пользователя. Поэтому позже наверное лучше перевесить этот обработчик на другое событие, например регистрации, как сказал выше.

В качестве примера установки PAU в процессе setup сайта можно посмотреть: http://github.com/astoon/bbru/blob/master/src/bbru/authentication/config.py

16 августа 2010 г. 20:51 пользователь dem...@gmail.com <dem...@gmail.com> написал:

--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru
Reply all
Reply to author
Forward
0 new messages