如何在用户使用IUserLoggedInEvent登录后获取门户网站对象

时间:2013-06-03 20:52:27

标签: plone

我正在尝试在用户登录后获取门户网站对象以创建文件夹。现在,我正在使用以下活动订阅者。有更好的方法吗?

<subscriber
    for="*
         Products.PluggableAuthService.interfaces.events.IUserLoggedInEvent"
    handler=".subscribers.createProfile"
/>

def createProfile(obj, event):
    portal = getToolByName(obj.REQUEST.PUBLISHED, 'portal_url').getPortalObject()

2 个答案:

答案 0 :(得分:8)

您可以使用getSite()功能:

from zope.component.hooks import getSite

site = getSite() # returns portal root from thread local storage

答案 1 :(得分:1)

Martijn是正确的(一如既往),但你也可以给plone.api一个旋转 - 它更容易:

from plone import api

portal = api.portal.get()