敏捷性FTIには、あるタイプの "AddPermission"として権限を選択するオプションがありますが、タイプをコンテナに追加する前に、真になる可能性のある複雑なロジックを解決する必要がある方法を探しています。私の特定の例では、任意のコンテナでこのコンテンツのX番号だけを許可しません。たとえば、 "isAddable"などのメソッドをサブクラス化することができれば、これを行う方法は見当たりません。クラスオブジェクトがまだ開始されていないので、これは可能ではない可能性があります。したがって、メソッドを呼び出すことはできませんが、おそらくFTI自体に何かがありますか?敏捷性タイプを追加可能にする条件を追加するにはどうすればよいですか?
私はもう2つのオプションを考えました。私の場合、コンテナもカスタムコンテンツタイプであるため、allowedContentTypesメソッドをオーバーライドできます。私はむしろ、このチェックを行うためにコンテナに頼っていないだろう。別のオプションは、plone.app.content.browser.folderfactories.FolderFactoriesViewのaddable_typesメソッドをオーバーライドすることです。より良いアプローチがありますか?
この
は、残念ながらFTIの "addable_expression" のようなものはありません
セキュリティについての説明は正しいですが、依然としてaddableのビジュアルUI制限(ユーザーは追加可能なタイプは表示されませんが、手動で追加URLを書き込むことはできます)https://github.com/keul/collective.factorymenuを使用することができます(テストの問題でまだリリースされていませんが、Plone 4.3と5) –
私は、フォルダファクトリのビューを修正し、zope.lifecycleevent.interfaces.IObjectAddedEventのイベントリスナーも作成しました。親コンテナのallowedContentTypesを変更すると、残念ながらファクトリビューを変更するのと同じセキュリティホールが発生しました。 – Esoth
詳細なフィードバックをいただきありがとうございます。あなたの問題が解決されたと聞いていいです;-) – fRiSi