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

Mat*_*ira 1 plone

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

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

def createProfile(obj, event):
    portal = getToolByName(obj.REQUEST.PUBLISHED, 'portal_url').getPortalObject()
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

你可以使用这个getSite()功能:

from zope.component.hooks import getSite

site = getSite() # returns portal root from thread local storage
Run Code Online (Sandbox Code Playgroud)