在Plone 4.1中使匿名用户可以查看成员肖像

时间:2011-10-19 08:33:03

标签: plone viewlets

在Plone 4.1中,我想制作匿名用户可以查看的成员肖像(在portal_memberdata / portraits中找到)。

即使我在公共视图中向图像返回正确的URL,图像也始终受到保护,而是返回默认的图像('defaultUser.png')。

如何完成此操作并向我的Viewlets中的匿名用户显示作者肖像?

只是为了澄清:

author.getPersonalPortrait().absolute_url()

会将正确的网址返回给图片。当访问视图时,浏览器会提取图像,资源将受到保护。

2 个答案:

答案 0 :(得分:3)

在对pdb进行了一些激励之后,我用这种方式解决了这个问题:

def get_author_image(self, member_id):
    """
    Fetch the author portrait image url accoding to member_id
    """
    mtool = getToolByName(self.context, 'portal_membership')
    mtool.getPersonalPortrait(id=member.id)

秘密在于传递id kwarg。很奇怪,但它确实有效。

这不是权限问题,而是getPersonalPortrait返回图像的正确URL的方式问题。如果你没有指定id,那么它将无法计算出正确的成员id,从而回退到显示默认用户图像。

答案 1 :(得分:1)

def __init__(self):
    BaseTool.__init__(self)
    self.portraits=BTreeFolder2(id='portraits')

您要将View权限添加到portal_memberdata.portraits文件夹。

您可以访问:

http://mysite.xx/portal_memberdata/portraits/manage_main

并在那里管理权限:)肖像是简单的图像