web-dev-qa-db-ja.com

ノードの作成者のみにWebフォームを送信する許可

個人プロジェクトにwebform 8.xを使用していますが、ノードの作成者のみがフォームを送信できるようにすることが可能かどうか知りたいのですが。

私のプロジェクトでは、各ノードは水族館であり、私はwebformを使用して、特定のノード(水族館)のすべての日次データ(温度、pH、KH eccなど)を収集しています。ノード(水族館)に関連するビューを作成できました。その特定の水族館の毎日送信されたデータを表示できますが、問題は、誰でもフォームを送信できることです。ウェブフォームを送信します。

何かアイデアをください。行き詰まっている.

1

相談した後 ノードの作成者のみにコメントを許可する および この本 この質問に自分で答えることができると思います:

私はカスタムモジュールを作成し、 hook_form_alter を使用しました:

ここに関数があります:

function MODULE_NAME_form_alter(&$form, $form_state, $form_id) {
if($form['#webform_id'] == "YOUR-WEBFORM-ID"){
    $node = \Drupal::request()->attributes->get('node');
 if(!is_null($node) && $node->getOwnerId() != \Drupal::currentUser()->id()) {
     $form['#access'] = false;
 }
}

}

0

これがDrupal 7またはDrupal 8であるかどうかはわかりませんが、これはD8で機能するはずです

作成者ごとにウェブサイトにユーザーアカウントが既にあるようです。ウェブフォームの[設定]に移動し、[アクセス]タブをクリックしてください(例:/ admin/structure/webform/manage/FORM_MACHINE_NAME/access)

そしてそこで、あなたは特定のユーザーだけに提出を作成する能力を制限することができます

0
Leigh