1

フォルダ内のオブジェクトのドキュメント アクションへのクイック リンクを含むカスタム フォルダ リストを作成しようとしています。

特定のオブジェクトに対して定義されたアクションをロードするobjには、フォルダーのブラウザー ビューで実行します。

portal_actions = getToolByName(self.context, 'portal_actions')
actions = portal_actions.listActionInfos(object=obj, categories=('object_buttons',))

しかし、何らかの理由actionsで常にCopyアクションしか含まれていません。オブジェクトの削除、名前の変更などが欠落しています。同じユーザー (マネージャー) で Plone UI を使用すると、オブジェクト I のすべてのアクションにアクセスできます。

新しいダミー アクションを使用した実験では、問題の原因はパーミッションと条件チェックのlistActionInfos実行にあるに違いないことが示されました。しかし、ここで私は立ち往生しています...アクションのパーミッションと条件式をチェックするために使用される評価コンテキストを比較すると、ブラウザビューからの呼び出しとオブジェクトの通常の Plone UI との間に大きな違いはありませんでした。

何が問題なのですか?

4

1 に答える 1

0

問題の原因を見つけました。

投稿されたコードは問題なく動作しますが、Zope のセキュリティ機構に、ビューの実際のロールとは異なる、権限の低いロールを使用するよう説得することができました。どういうわけか、ビューのメソッドで別のブラウザー ビュー オブジェクトを作成すると、__init__この奇妙な動作が発生しました。

于 2014-12-17T18:56:54.180 に答える