我想获得这个位置' (我的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:无法获取门户网站对象。
答案 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