ビューで作成されたビデオギャラリーに表示されるノードのURLへの直接アクセスを制限するにはどうすればよいですか?


10

ビューを使用してビデオギャラリーを作成しました。しかし、私はページが一般にアクセス可能であり、個別に各ビデオへのアクセスを禁止することを望んでいます。

動画は一種のコンテンツとして作成する必要があったため、すべてにのようなアクセス可能なULRを設定/content/video-1しました。

回答:


5

コンテンツアクセスモジュールを試して、コンテンツへのアクセスをvideo個別に禁止します(または、必要に応じてアクセスを設定することもできますroles

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

また、ノードビュー権限モジュールを使用することもできますが、を使用することをお勧めしますContent access module

(将来のためにdrupalで作業したい場合は、この便利なモジュールに参加することをお勧めします)


ほとんど必要なもの。最後に、低レベルでアクセスを制御しました。これは、場合によってはホームページに、他の場合は404にリダイレクトしたかったため、より適切に制御できましたが、このモジュールはほとんどの場合に機能すると思います。たぶん私の場合はより良い調整をしましたが、調査する時間はありませんでした。
Cesar

3

ノードビュー権限モジュールをインストールします。

ノードビューのアクセス許可モジュールは、Drupal 6の場合と同様に、アクセス許可ページで各コンテンツタイプのアクセス許可「独自のコンテンツの表示」と「コンテンツの表示」を有効にします。

許可ページに移動し、匿名ユーザーのビデオコンテンツタイプからコンテンツの表示許可を削除します

ビデオギャラリーの一部のビデオのみを匿名ユーザーがアクセスできるようにする場合は、アクセス拒否モジュールをインストールします。


1

コンテンツタイプを更新するだけです。

  1. display_orderなどの数値フィールドを追加します。

  2. このフィールドの値は、表示する動画にのみ設定してください。

  3. ビュー設定に移動して設定します。

    ポケットベルを使用:指定した数のアイテムを表示する| xアイテム

    ここで、xは表示する動画の数です

  4. 次に、表示順による並べ替えを適用します

それがうまくいくことを願っています。


1

私が思うにラビット・ホールのモジュールは、あなたが探しているまさにありません。以下に、モジュールの説明ページからの抜粋を示します。幸運を。

ウサギの穴は、エンティティが独自のページで表示されているときに何が起こるかを制御する機能を追加するモジュールです。

カルーセルに表示される画像コンテンツタイプのように、独自のページに表示されるべきではないコンテンツタイプがある可能性があります。Rabbit Holeは、node / xxxを介して、このノードが独自のページでアクセスできないようにすることができます。


1

うさぎの穴モジュールに行きます、それはまったく同じです。すべてのコンテンツはビュー/コードを介してアクセスできますが、詳細ページ "content / ***"にアクセスしようとすると、アクセスが拒否されるか、リダイレクトを設定できます。


乗ってあげます、ありがとう。今のところ、私はそれを低レベルで解決しましたが、すでに行われたカスタムモジュールを知ることが最善です。
Cesar

0

1)コンテンツタイプにブール値フィールドを作成します。

2)値がtrueとして選択されている場合、一意のクラスがそのビデオフィールドに追加されます。値がfalseとして選択されている場合、クラスはそのビデオフィールドに追加されません。

3)クラスが存在しないビデオを非表示にするCSSを記述します。


0

ルールモジュールを使用すると、次のようなルールを実装できます。

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

相対パスにアクセスしようとすると、path content/video-1を使用してページにリダイレクトされ、no_access関連するエラーメッセージが表示されます(このパスを独自の規則に合わせて変更し、表示されるメッセージを確認してください)。

上記のルールcontent/video-1は、(質問のように)相対パスへのアクセスのみを制限します。ルールを同様のURLに拡張する場合は、などのパス、またはパスの命名規則に適合するバリエーションに変更 content\/video-1content\/video-\\d+$ます。

上記のルールは、(まだ)選択されたロールを持つユーザーにのみルールアクションを適用することを考慮していません。ただし、Rulesモジュールに少し慣れている人にとっては、これは簡単に追加できる「条件」です。例:編集者、管理者などの役割を持つユーザーのルールアクションをスキップします。これは、ルールを追加することで実行できます。 「ユーザーに管理者(または編集者)の役割がない」などの条件。そうすれば、そうした種類の特別なユーザーは、とにかくそのようなノードを表示できます(そのような特別な条件がないと、そのようなノードはもう表示できません...)。

独自のサイトでこのルールを試すには、上記のルールコード全体をコピーして、「インポート」機能で作成した独自のサイトの新しいルールに貼り付けます(ルールUIが有効になっている場合に使用可能)。次に、さらに編集/調整して、自分の環境に合わせます(たとえば、「Sorry、...」メッセージが表示されます)。

追加の改良

他の回答の1つに、これを含むコメントを追加しました。

...場合によってはホームページに、他の場合は404にリダイレクトしたかったので、より適切に制御した...

それもあなたがやりたいことなら、条件付きルールモジュールも追加することで、上記のルールアクションをさらに絞り込むことができます。これで、「ケース」ごとに、リダイレクト先の適切なURLを指定できます。ルールアクション内でこのモジュールを使用する方法の図については、「リストボックスの値に応じて一部のフィールドの値を設定する方法」に対する私の回答を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.