[英]get current logged user on Plone
我想在我的plone实例中获取当前登录用户的“位置”(属性,如用户名,用户ID等)。
为了获得当前用户,我尝试了:
from AccessControl import getSecurityManager
user = getSecurityManager().getUser()
username = user.getUserName()
但是对于用户名和用户名,我都得到字符串“ System Processes”
我该如何解决?
编辑
我试过了
from plone import api
user = api.user.get_current()
user.getProperty('location')
但我得到:
CannotGetPortalError:无法获取门户对象。
我建议在这里使用plone.api。 您可以执行以下操作:
from plone import api
user = api.user.get_current()
user.getProperty('location')
我在这里找到了解决方案。
from Products.CMFCore.utils import getToolByName
membership = getToolByName(self.context, 'portal_membership')
authenticated_user = membership.getAuthenticatedMember().getProperty('location')
print authenticated_user
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.