ユーザーの役割に基づいてノードのアクセスを制限するにはどうすればよいですか?[閉まっている]


8

ユーザーの役割に基づいて特定のノードのみの表示を許可するにはどうすればよいですか?

基本的に、特定の役割のユーザーがノードにアクセスできるようにしたくありません。


3
彼らがあなたの質問を閉じた理由がわからない、それは良い質問です。そして、興味があるかもしれない人のために、私は常にカスタムモジュールを作成し、api.drupal.org / api / drupal / modules%21node%21node.api.php / …...フルコントロール、大規模なモジュールの形のオーバーヘッド、はるかに簡単で信頼性が高くなります。
coderama

1
@coderamaこれは少し広範で、OPがこれまでに試みたことを示していません。このような質問は、おそらく将来のユーザーの役に立たない幅広い回答を得ます。
kiamlaluno

回答:


3

コンテンツアクセスモジュールを試しましたか

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


1
ノードベースのアクセス許可が必要ない場合、より単純なモジュールは、コンテンツタイプとユーザーロールのみに基づいてアクセスを制御するノードビューのアクセス許可モジュールです。
jevon 2013年

1
このモジュールはDrupal 7のベータ版です
Toby Allen

16

あなたが話しているのは、大きな主題であるDrupalノードのアクセス制御です。

ノードアクセス制御に対するコアの組み込みサポートはかなり粗く、役割によってノードを表示するためのアクセスを制御するには、ある種のノードアクセス制御モジュールを使用する必要があります。

Drupal.orgには、すべてのノードアクセスモジュールを一覧表示するページがあり、それぞれのカプセルレビューが記載されています。そのページを見て、役割に基づいてアクセスを制御するための適切なモジュールを見つけることができるかどうかを確認することをお勧めします。

アクセス制御を使用する場合、Drupalアクセス制御モジュールが実際にどのように機能するかを理解するのに役立ちます。ここで簡単に説明します。

  1. ノードの管理権限を付与されたユーザーがノードのアクセス制御によって制限されることはありません。公開されたコンテンツを表示する権限がないユーザーは、ノードアクセスモジュールによってアクセスを許可されることはありません。「ノードの管理」ではなく「コンテンツへのアクセス」を持つユーザーのみが、ノードアクセスモジュール制御のワイルドワールドを利用できます。

  2. Drupalのノードアクセス制御は、原則として追加されます。つまり、「Drupalの哲学」に従ってアクセス制御を行うモジュールは、アクセスを許可するだけで、拒否するべきではありません。ノードへのアクセスを微調整したい管理者は、まず誰もアクセスできないことを確認してから、アクセスを許可するすべての人にアクセス許可を追加する必要があります。

つまり、すべてのユーザーのアクセスを拒否することから始めて、制限したくないノードに再度追加する必要があるため、コンテンツアクセスのようなモジュールで個人へのアクセスを制限するのはかなり面倒な場合があります。ただし、実際にノードごとに実行する必要がある場合は、これが最良のオプションだと思います。その主な解決策はコンテンツタイプですが、単一ノードに対してこれをオーバーライドできます。

残念ながら、アクセスの拒否はコンテンツタイプでのみ機能し、個々のノードを上書きしないため、アクセスを拒否することはできません。

注意:複数のノードアクセスモジュールを使用することお勧めしません

コンテンツタイプをノードアクセス制御の基本単位として使用できるように要件を変更できる場合は、アクセスの拒否が理想的です。たとえば、「学生」の役割があり、回答のあるノードへのアクセスを拒否する場合は、コンテンツタイプ「回答」(デフォルトの「記事」のクローンにすることができます)を作成し、アクセスを拒否することができます。 「Answer」タイプのすべてのノードが「student」の役割によって表示されないように保護してください。


1
基本的に、特定の役割のユーザーがノードにアクセスできるようにしたくないので、実装するのは難しいですか?
2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.