5

シンプルなクォータ システムを実装するためのベスト プラクティスに関するガイダンスが必要

メンバーがカスタム コンテンツ タイプ (トークンと呼ばれる) をメンバー フォルダーに追加できる回数を制限したいと思います (カスタム メンバー フォルダーも作成しました)。

ユースケース (メンバーが追加できるトークンの数を制限する):

カスタム コンテンツ タイプが「トークン」と呼ばれていると仮定しましょう。追加できるトークンの数に制限を設定できるはずです。たとえば、制限は 2 に設定されています。メンバー エリアに 2 つのトークンを追加すると、それ以上トークンを追加する権限がなくなります。

検討していること

私は DCWorkflow を調べており、ある種のガード条件がオプションであるかどうか疑問に思っています。また、class/require zcml ディレクティブを使用する「quota」というアドオンのソース コードも調べました (コードはこちら: http://svn.plone.org/svn/collective/quota/trunk/configure.zcml )。

「トークン」自体のワークフローではなく、メンバー フォルダをカスタマイズする必要があるようです。これに関する指針/ガイダンスをいただければ幸いです。

4

3 に答える 3

5

コンテンツの追加はワークフロー アクションではないため、これがワークフローで実現できるとは思えません。トークンの種類にカスタムの追加フォームを使用し、ユーザーが既に 2 つ以上のトークンを持っている場合はコンテンツの作成を禁止します。

于 2011-07-04T17:19:58.253 に答える
2

イベントを含む追加されたコンテンツタイプオブジェクトの数を監視し、オブジェクト数が制限を超えたときに追加権限を取り消すことができます。

イベントドキュメント: http: //plone.org/products/dexterity/documentation/manual/five.grok/core-components/events

権限の取り消しは、たとえばグループを使用して行うことができます。コンテンツの追加を許可されているグループからユーザーを削除するだけです。

于 2011-07-05T13:37:25.227 に答える
2

Member Folder の allowedContentTypes メソッドをオーバーライドすることもできます。

返されたリストから、必要に応じて任意の AT タイプをフィルター処理できます。

良い点は、追加可能なタイプのリストで更新された従来の「新規追加」ドロップダウン メニューも取得できることです。

グループ/ロールごとにアイテムの数を制限する必要があるプロジェクトでこれを行いました。

于 2011-07-07T16:58:39.853 に答える