繁体   English   中英

在Plone上获取当前登录的用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM