2013-06-03 1 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

Мартейн находится прямо на месте (как всегда), но вы могли бы также дать plone.api спина - это еще проще:

from plone import api 

portal = api.portal.get() 
Смежные вопросы