スタッフが出版物を入力するために使用する出版物データベースを作成しています。これらの出版物の一部は一般に公開されており、一部は公開されていません。さらに、出版物にはそれらに関連付けられたファイルがあり、公開されているものとされていないものがあります。ブール型の公開フィールドと、2つの個別のファイルフィールド(1つは公開用、もう1つは内部ファイル用)を使用して、さまざまなタイプのパブリケーション用のコンテンツタイプがいくつかあります。現在、ユーザーの役割は1つ(スタッフメンバー)ですが、管理者とコンテンツ承認ワークフローを考慮して、役割の数はわずかに増える可能性があります。
すべてのパブリケーションリストは、認証されていないユーザーには公開ドキュメントのリストを表示し、適切な役割の認証されたユーザーにはすべてのドキュメントのリストを表示するという考え方です。
私の最初の考えは、ページごとに異なるアクセス設定で2つの異なるビューを作成することです。 1つ目は、publicフィールドをチェックせず、非公開ファイルフィールドを含むページです。2つ目は、誰でも利用できる、publicフィールドがtrueに設定され、内部ファイルを含まないパブリケーションにフィルターをかけるページです。フィールド、およびスタッフのみが関心を持つ他のいくつかのフィールド。
これは最も単純で最も愚かなアプローチですか?ビューまたはビューモード(フルコンテンツ、ティーザーなど)を介して使用されるフィールドを制御する方が理にかなっていますか。私はまだDrupalでの作業にまだ慣れていないので、毎回それと戦っています。 drupalサイトで作業するための間違った方法を考えているに違いない。
詳細情報:私は実際にこれを既存のシステムから再実装しており、 Migrate モジュールを使用して何千ものエントリなので、移行の一部として何らかの方法で、アクセス許可を指定する必要があります。
このモジュールを使用すると、ロールおよび作成者ごとにコンテンツタイプの権限を管理できます。これにより、各コンテンツタイプのカスタム表示、編集、および削除権限を指定できます。オプションで、コンテンツごとのアクセス設定を有効にして、コンテンツノードごとにアクセスをカスタマイズできます。
フィールド権限モジュールを使用すると、サイト管理者はフィールドレベルの権限を設定して、エンティティのフィールドを編集、表示、作成できます。
必要なものがすべてビュー内にあると仮定すると、ビューのアプローチは問題ありません。
ただし、ノードへのアクセスを制限する場合は、コンテンツアクセスを使用することをお勧めします。
例:ビューに匿名でアクセスできないリンク(例:プレミアムコンテンツ)がリストされている場合は、コンテンツアクセスモジュールを使用することをお勧めします。ノード。
前の(有効な!)回答とは別に、質問の少なくともこの部分に対処する別の代替があると思います。
すべてのパブリケーションリストは、認証されていないユーザーには公開ドキュメントのリストを表示し、適切な役割の認証されたユーザーにはすべてのドキュメントのリストを表示するという考え方です。
これを実装しようとする方法は、認証されたユーザーを対象とするすべてのドキュメントに対して Group モジュールを使用することです。 「公開」ドキュメントの場合、私は何もする必要がないと思います。 「right role」に従って、それは適切な「グループ」を作成することの問題です(たとえば役割ごとに1つありますか?)、および/またはこのモジュールがサポートするサブグループです。
このモジュールは Organic groups "弟"のようなもので、D7から始まり、地平線にD8バージョンが入っています。個人的には、ますます Content Access モジュールの潜在的な代替手段として考えています。また、すべてエンティティベースであるため、 Rules モジュールと組み合わせて使用する方法はたくさんあります。
このモジュールの詳細については、「 ユーザーが自分のユーザーのみを編集できるようにする方法 」に対する私の回答を参照してください。