2013-06-03 51 views
1

我想在用戶登錄後創建一個文件夾以獲取門戶對象。現在,我正在使用下面的事件訂閱者。有一個更好的方法嗎?如何在用戶登錄後使用IUserLoggedInEvent獲取門戶對象

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

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

回答

8

您可以使用getSite()功能:

from zope.component.hooks import getSite 

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

的Martijn是正確的斑點(一如既往),但你也可以給plone.api自旋 - 這是更容易:

from plone import api 

portal = api.portal.get()