web-dev-qa-db-ja.com

Webフォーム送信を行うユーザーのみにWebフォーム送信アクセスを制限するにはどうすればよいですか?

アンケートには Webform を使用しています。ただし、送信したユーザーにすべての結果の表示を許可したい。つまり、すべてのWebフォーム送信を確認します。

どのユーザーも送信できますが、送信しないとすべての結果を表示できません。

アイデアや提案はありますか?

2
SANDWIDI

これを機能させる手順は次のとおりです。

  • 専用の役割を作成し、「WSA」(「Webform Submission Access」の略)と呼びましょう。デフォルトでは、このロールを持つユーザーはいません。
  • WSAのみがアクセスできるように、「すべてのWebフォーム結果にアクセスする」権限を構成します。
  • Rules および Webform Rules モジュールをインストール/有効化します。
  • 次のような基本的なルールを作成します。
    • ルールイベント:Webフォームが送信された後。
    • ルールの条件:現在のユーザーが「認証済み」の役割を持っていることを確認します(匿名ユーザーに送信へのアクセス権を与えたくないと思います...)。必要に応じてその他の条件を追加します(例:form-idを確認)。
    • ルールアクセス:「現在のユーザー」(Webフォームを送信したユーザー)にWSAロールへのアクセスを許可します。

PS:この質問はD7に関するものだと思います。

1
Pierre.Vriens

多分完全なソリューションではないかもしれませんが、これはあなたが始めることができる方法です

  • 提出物を表示するビューを作成する
  • 誰でも利用できるようにする(ビューにはアクセス許可があります)
  • メインサイトからリンクされていない(非表示にされているが正確ではない)URLに配置する
  • 投稿完了ページ(ありがとうページ)にURLリンクを貼る

これは、このURLを知っている人がそのURLにアクセスして結果を表示することを妨げないことに注意してください。この時点では、必要な権限を与えるモジュールについては知りませんsee results after submissionまたは同様のものなので、上記が満足のいくものでない場合は、それを行うためのモジュールを作成するか、そのような機能を含めるようにWebフォームを変更することができます。

1
GiorgosK