获取Plone上的当前登录用户

时间:2014-08-21 08:33:47

标签: python plone

我想获得这个位置' (我的plone实例中当前登录用户的属性,如用户名,用户ID,...)。

要获得我尝试过的当前用户:

from AccessControl import getSecurityManager
user = getSecurityManager().getUser()
username = user.getUserName()

但是对于用户和用户名,我都得到字符串"系统进程"

我该如何解决这个问题?

修改

我已经尝试了

from plone import api
user = api.user.get_current()
user.getProperty('location')

但我明白了:

  

CannotGetPortalError:无法获取门户网站对象。

3 个答案:

答案 0 :(得分:3)

我建议在这里使用plone.api。您可以执行以下操作:

from plone import api
user = api.user.get_current()
user.getProperty('location')

答案 1 :(得分:1)

我找到了解决方案here

from Products.CMFCore.utils import getToolByName

membership = getToolByName(self.context, 'portal_membership')
authenticated_user = membership.getAuthenticatedMember().getProperty('location') 
print authenticated_user

答案 2 :(得分:1)

必须在类方法中调用

self.context 。在一个简单的python scritp中只使用 context 。这个脚本有效

from Products.CMFCore.utils import getToolByName 
mt = getToolByName(context, 'portal_membership') 
if  mt.isAnonymousUser(): 
    member = 'anonymous' 
else:
    member = mt.getAuthenticatedMember() 

print member
return printed