2

ユーザーを(カスタムタイプの)特定の投稿に割り当てる必要があるプラグインを設計しています。

たとえば、カスタム投稿タイプがあります。ClassifiedFile

そのタイプの投稿の場合、ユーザーを割り当てるためのインターフェイスのどこかに、それぞれが異なる機能を持っている必要があります。その場合、それは次のようになります。

  • Reviewers特定の分類されたファイルに割り当てられたファイルは、それを読み取り、承認済みとしてマークできます
  • Readers特定の分類されたファイルに割り当てられたものは、それを読み取ることしかできません
  • またはもちろん、読者とレビュー担当者は、表示が許可されているファイル以外の分類されたファイルにアクセスすることはできません。
  • Managers分類されたファイルReviewersに割り当てることができるユーザーReaders
  • PluginAdminManagers分類されたファイルに割り当てることができる人

理想的には、ソリューションは次のタイプの効率的なリクエストに役立つはずです。

  • ユーザーが(レビュー担当者またはリーダーとして)読み取ることができるすべての分類済みファイルを一覧表示したいと思います。

ここのところ :

  • 投稿のメタデータにいくつかの特定のプロパティ(承認ステータスなど)を保存しました。
  • 「plugin-admin」、「manage-file-users」、「approve-file」、「read-file」のカスタム機能を作成しました
  • そのために、ファイルグループマネージャー( "plugin-admin")、ファイルグループマネージャー( "manage-users")、ファイルレビューアー( "approve-file"、 "read-file")、ファイルリーダー( "読み取りファイル")

分類されたファイルごとの特権のリストと保存に対処するための良い方法を見つけるのに苦労していると言わなければなりません。理想的には、別のDBテーブルを作成する必要はありませんが、それがその方法である場合は、それを実行します。

4

1 に答える 1

1

役割の割り当てはそれほど問題ではありませんでした。問題は、情報をどこにどのように保存するかということでした。

私はそれをすることにしました:

  • すべてに共通のグループ(実際にはWP_Roleオブジェクト)を定義しますClassifiedFile
  • それぞれについてClassifiedFile、ユーザーの役割とIDを含む文字列の配列であるメタ値を格納します。例えば:[ reviewer|50|, reader|123|, reader|13| ]
  • ClassifiedFile次に、基準を使用して特定のユーザーすべてにクエリを実行できます。

    'meta_query' => array(array('key' =>'users'、'value' =>'|'。$user_id。'|'、'compare' =>'LIKE'))

  • またはグループを使用する:

    'meta_query' => array(array('key' =>'users'、'value' => $group。'|'。$user_id。'|'、'compare' =>'='))

于 2012-12-09T14:12:53.807 に答える