web-dev-qa-db-ja.com

ユーザーが自分で作成していない非公開ノードを表示できるようにするにはどうすればよいですか?

編集者とレビュー担当者という2つの役割を作成しました。

エディターは非公開ノードのみを作成する必要があります。代わりに、レビュー担当者はこれらのノードを公開して表示する必要があります。

ロールを持つユーザーに非公開ノードを表示するにはどうすればよいですか? 「コンテンツの概要ページへのアクセス」権限を設定すると、そのロールを持つユーザーはすべてのコンテンツを変更できるため、これを望まない。

View unpublished モジュールを試してみましたが、- View unpublishedがViewsによって定義されたアクセスルールに違反する で報告されているように、問題があります。

ユーザーが自分で作成していない非公開ノードを表示できるようにするにはどうすればよいですか?

5
kb8

解決策1

アクセス許可を設定します 'コンテンツの概要ページにアクセスします'...」、それを組み合わせて Rules モジュールを使用して「レビューアはすべてのコンテンツを変更できます "。その方法の詳細については、以下をお読みください。

Rules モジュールを使用して)ルールを作成します。これは、「 ノードへのアクセスを制限する方法)に関する質問への回答に(エクスポート形式で)含めたルールのバリエーションです。 node/12を介して、content/sometitle? "のようなパスを介してアクセスを許可します。

これらは、このケースでも機能するようにそのルールを変更したものです。

  • 追加/edit最後にnode/%(誰かがノードを編集しようとしたときに、/edit最後に。ただし、そのバリエーションはすべて同じように機能するはずです)。
  • ルール 'Condition'を追加して、そのような編集を試みている現在のユーザーがロール「編集者」を持っていないことを確認します。
  • また、おそらく「コンテンツはタイプです」のような別のルール条件を追加する必要があります(つまり、あなたのケースでは「記事」。元の質問には記載されていないが、追加のコメントに記載されています)。このように、ルールアクションは他のコンテンツタイプには適用されません。
  • 「ルール」Action 'の「メッセージ」をニーズに合ったものに変更します。
  • ルール「Action」を変更して、独自の要件に合わせます。他のページへのリダイレクトを発行する。

ルールEventは "Drupal Is Initializing"であることに注意してください。それ以外の場合は、確かに "遅すぎる"です。ルールがトリガーされた後、編集セッションは既に開始されていますが、その前にトリガーする必要があります。つまり、Drupalが編集セッションを開始する準備をしているときです。

このルールの作成(=上記の回答のルールのバリエーション)を試したり試したりしていない。しかし、それがうまくいくと確信しています。

また、「 https://drupal.stackexchange.com/questions/182958/how-to-limit-appearance-settings-based-on-roles-permissions/182959#182959 "は、ここで必要なものと同様のいくつかの手法を使用するルールの別の例です。

解決策2

ソリューション1は機能するはずですが、弱点は、「コンテンツアクセス制御のバイパス」に基づいていることです。個人的には、私もそれが好きではありません。したがって、それについてのあなたのコメント(モデレートにより削除されたコメント)に同意します。

あなたが解決しようとしている課題に「本当の」解決策を実装するのが私次第であるなら、私は計画bに行くでしょう、以下にさらに詳しく述べます。

これらの質問のいずれかに対する私の答えを見てください:

これらの回答は、探しているものと(正確ではありませんが)かなり似たワークフローを実装する方法を説明しています。

そのためには、次のモジュール(および通常のコンテンツタイプ)を使用する必要があります。

そして、そのようなアプローチを使用することにより、 " Webform "や " Workbench "などのモジュール(通常、これらの種類のワークフローに関連するモジュール)は必要ありません。

ルール に慣れていない場合は、ビデオチュートリアル ルールフレームワークを学ぶ を確認してください。または同様の 8ビデオチュートリアルのセットFlag モジュールについて。

メモ:この「ソリューション2」は、私たちのサイトの1つに質問のバリエーションを実装する方法でもあります。問題(=問題または機能のリクエスト)から始まります、Recipe(=動作させる方法に関する説明)に進化し、Software solution(=プラグインなどで終了しますが、Recipeはドキュメンテーション)。 Node ConvertContent Access は、このためにほとんどの作業を行い、D6でも機能します...

3
Pierre.Vriens

コンテンツアクセス

このモジュールを使用すると、ロールおよび作成者ごとにコンテンツタイプの権限を管理できます。カスタムビューを指定し、権限を編集、削除できますコンテンツタイプごとに。オプションで、コンテンツごとのアクセス設定を有効にして、各コンテンツノードのアクセスをカスタマイズできます。

enter image description here

2
No Sssweat

npublished_node_permissions を使用して、ロールごとに詳細な権限を作成し、admin/people/permissionsで管理者が編集して、コンテンツタイプごとに非公開ノードを表示できます。

また、ビューの権限も考慮されるため、たとえば、admin/contentビューは、ユーザーのロール権限に従ってノードを正しくフィルタリングします。

注:D8多言語サイトおよびビューには、望ましくない結果をもたらす可能性のある既知のバグがあります。

1
GiorgosK