diff --git a/app/controllers/account_configs_controller.rb b/app/controllers/account_configs_controller.rb index fb749895..8881697e 100644 --- a/app/controllers/account_configs_controller.rb +++ b/app/controllers/account_configs_controller.rb @@ -26,7 +26,8 @@ class AccountConfigsController < ApplicationController AccountConfig::REQUIRE_SIGNING_REASON_KEY, AccountConfig::DOCUMENT_FILENAME_FORMAT_KEY, AccountConfig::ENABLE_MCP_KEY, - AccountConfig::IP_ALLOWLIST_KEY + AccountConfig::IP_ALLOWLIST_KEY, + AccountConfig::REQUIRE_CONSENT_KEY ].freeze InvalidKey = Class.new(StandardError) diff --git a/app/controllers/api/submitter_consents_controller.rb b/app/controllers/api/submitter_consents_controller.rb new file mode 100644 index 00000000..447d9fce --- /dev/null +++ b/app/controllers/api/submitter_consents_controller.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Api + class SubmitterConsentsController < ApiBaseController + skip_before_action :authenticate_user! + skip_authorization_check + + def create + @submitter = Submitter.find_by!(slug: params[:submitter_slug]) + + SubmissionEvents.create_with_tracking_data(@submitter, 'consent_given', request) + + render json: {} + end + end +end diff --git a/app/javascript/form.js b/app/javascript/form.js index c8d5790e..26b1aa50 100644 --- a/app/javascript/form.js +++ b/app/javascript/form.js @@ -42,6 +42,7 @@ safeRegisterElement('submission-form', class extends HTMLElement { withConfetti: this.dataset.withConfetti === 'true', withFieldLabels: this.dataset.withFieldLabels !== 'false', withDisclosure: this.dataset.withDisclosure === 'true', + requireConsent: this.dataset.requireConsent === 'true', reuseSignature: this.dataset.reuseSignature !== 'false', withTypedSignature: this.dataset.withTypedSignature !== 'false', authenticityToken: document.querySelector('meta[name="csrf-token"]')?.content, diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue index 45585c4f..1e612b72 100644 --- a/app/javascript/submission_form/form.vue +++ b/app/javascript/submission_form/form.vue @@ -570,12 +570,26 @@ v-if="(currentField.type !== 'payment' && currentField.type !== 'verification' && currentField.type !== 'kba') || submittedValues[currentField.uuid]" :class="currentField.type === 'signature' ? 'mt-2' : 'mt-4 md:mt-6'" > +