3

Plone 4.1では、匿名ユーザーがメンバーのポートレート(portal_memberdata / portalにあります)を表示できるようにしたいと思います。

パブリックビューの画像に正しいURLを返しても、画像は常に保護され、代わりにデフォルトのURL('defaultUser.png')が返されます。

これを達成し、ビューレット内の匿名ユーザーに作成者のポートレートを表示するにはどうすればよいですか?

明確にするために:

author.getPersonalPortrait().absolute_url()

正しいURLを画像に返します。ビューにアクセスしたときにブラウザが画像を取得すると、リソースが保護されます。

4

2 に答える 2

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)

秘密はidkwargを渡すことです。奇妙ですが、動作します。

これは権限の問題ではなく、getPersonalPortraitが正しいURLを画像に返す方法の問題でした。IDを指定しないと、どういうわけか正しいメンバーIDを計算できないため、デフォルトのユーザー画像を表示するようにフォールバックします。

于 2011-10-19T10:51:12.190 に答える
1
def __init__(self):
    BaseTool.__init__(self)
    self.portraits=BTreeFolder2(id='portraits')

portal_memberdata.portraitsフォルダーに表示権限を追加する必要があります。

あなたはに行くことによってそれを行うことができます:

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

そこで権限を管理します:)ポートレートはシンプルな画像です

于 2011-10-19T09:34:44.343 に答える