1

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

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

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

2 回答 2

8

您可以使用以下getSite()功能:

from zope.component.hooks import getSite

site = getSite() # returns portal root from thread local storage
于 2013-06-03T21:37:56.700 回答
1

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

from plone import api

portal = api.portal.get()
于 2013-06-03T23:51:12.083 回答