add fetch options
This commit is contained in:
@@ -161,6 +161,11 @@ export default {
|
|||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
fetchOptions: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
completedButton: {
|
completedButton: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: false,
|
required: false,
|
||||||
@@ -214,7 +219,10 @@ export default {
|
|||||||
download () {
|
download () {
|
||||||
this.isDownloading = true
|
this.isDownloading = true
|
||||||
|
|
||||||
fetch(this.baseUrl + `/submitters/${this.submitterSlug}/download`).then(async (response) => {
|
fetch(this.baseUrl + `/submitters/${this.submitterSlug}/download`, {
|
||||||
|
method: 'GET',
|
||||||
|
...this.fetchOptions
|
||||||
|
}).then(async (response) => {
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
const urls = await response.json()
|
const urls = await response.json()
|
||||||
const isMobileSafariIos = 'ontouchstart' in window && navigator.maxTouchPoints > 0 && /AppleWebKit/i.test(navigator.userAgent)
|
const isMobileSafariIos = 'ontouchstart' in window && navigator.maxTouchPoints > 0 && /AppleWebKit/i.test(navigator.userAgent)
|
||||||
|
|||||||
@@ -530,6 +530,7 @@
|
|||||||
v-else-if="isInvite"
|
v-else-if="isInvite"
|
||||||
:submitters="inviteSubmitters"
|
:submitters="inviteSubmitters"
|
||||||
:optional-submitters="optionalInviteSubmitters"
|
:optional-submitters="optionalInviteSubmitters"
|
||||||
|
:fetch-options="fetchOptions"
|
||||||
:submitter-slug="submitterSlug"
|
:submitter-slug="submitterSlug"
|
||||||
:authenticity-token="authenticityToken"
|
:authenticity-token="authenticityToken"
|
||||||
:url="baseUrl + submitPath + '/invite'"
|
:url="baseUrl + submitPath + '/invite'"
|
||||||
@@ -543,6 +544,7 @@
|
|||||||
:has-signature-fields="stepFields.some((fields) => fields.some((f) => ['signature', 'initials'].includes(f.type)))"
|
:has-signature-fields="stepFields.some((fields) => fields.some((f) => ['signature', 'initials'].includes(f.type)))"
|
||||||
:has-multiple-documents="hasMultipleDocuments"
|
:has-multiple-documents="hasMultipleDocuments"
|
||||||
:completed-button="completedRedirectUrl ? {} : completedButton"
|
:completed-button="completedRedirectUrl ? {} : completedButton"
|
||||||
|
:fetch-options="fetchOptions"
|
||||||
:completed-message="completedRedirectUrl ? {} : completedMessage"
|
:completed-message="completedRedirectUrl ? {} : completedMessage"
|
||||||
:with-send-copy-button="withSendCopyButton && !completedRedirectUrl"
|
:with-send-copy-button="withSendCopyButton && !completedRedirectUrl"
|
||||||
:with-download-button="withDownloadButton && !completedRedirectUrl && !dryRun"
|
:with-download-button="withDownloadButton && !completedRedirectUrl && !dryRun"
|
||||||
@@ -678,6 +680,11 @@ export default {
|
|||||||
required: false,
|
required: false,
|
||||||
default: () => []
|
default: () => []
|
||||||
},
|
},
|
||||||
|
fetchOptions: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
optionalInviteSubmitters: {
|
optionalInviteSubmitters: {
|
||||||
type: Array,
|
type: Array,
|
||||||
required: false,
|
required: false,
|
||||||
@@ -1467,7 +1474,8 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return fetch(this.baseUrl + this.submitPath, {
|
return fetch(this.baseUrl + this.submitPath, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData || new FormData(this.$refs.form)
|
body: formData || new FormData(this.$refs.form),
|
||||||
|
...this.fetchOptions
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
currentFieldUuids.forEach((fieldUuid) => {
|
currentFieldUuids.forEach((fieldUuid) => {
|
||||||
|
|||||||
@@ -78,6 +78,11 @@ export default {
|
|||||||
type: Array,
|
type: Array,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
fetchOptions: {
|
||||||
|
type: Object,
|
||||||
|
required: false,
|
||||||
|
default: () => ({})
|
||||||
|
},
|
||||||
optionalSubmitters: {
|
optionalSubmitters: {
|
||||||
type: Array,
|
type: Array,
|
||||||
required: false,
|
required: false,
|
||||||
@@ -108,7 +113,8 @@ export default {
|
|||||||
|
|
||||||
return fetch(this.url, {
|
return fetch(this.url, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: new FormData(this.$refs.form)
|
body: new FormData(this.$refs.form),
|
||||||
|
...this.fetchOptions
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
this.$emit('success')
|
this.$emit('success')
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ module Submitters
|
|||||||
submitter.preferences['require_email_2fa'] != true
|
submitter.preferences['require_email_2fa'] != true
|
||||||
return true if request.cookie_jar.encrypted[:email_2fa_slug] == submitter.slug
|
return true if request.cookie_jar.encrypted[:email_2fa_slug] == submitter.slug
|
||||||
|
|
||||||
return true if request.params[:two_factor_token].present? &&
|
token = request.params[:two_factor_token].presence || request.headers['x-two-factor-token'].presence
|
||||||
Submitter.signed_id_verifier.verified(request.params[:two_factor_token],
|
|
||||||
purpose: :email_two_factor) == submitter.slug
|
return true if token.present? &&
|
||||||
|
Submitter.signed_id_verifier.verified(token, purpose: :email_two_factor) == submitter.slug
|
||||||
|
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
@@ -32,11 +33,10 @@ module Submitters
|
|||||||
return true if request.cookie_jar.encrypted[:email_2fa_slug] == submitter.slug
|
return true if request.cookie_jar.encrypted[:email_2fa_slug] == submitter.slug
|
||||||
return true if submitter.email == current_user&.email && current_user&.account_id == submitter.account_id
|
return true if submitter.email == current_user&.email && current_user&.account_id == submitter.account_id
|
||||||
|
|
||||||
if request.params[:two_factor_token].present?
|
if (token = request.params[:two_factor_token].presence || request.headers['x-two-factor-token'].presence)
|
||||||
link_2fa_key = [submitter.email.downcase.squish, submitter.submission.template.slug].join(':')
|
link_2fa_key = [submitter.email.downcase.squish, submitter.submission.template.slug].join(':')
|
||||||
|
|
||||||
return true if Submitter.signed_id_verifier.verified(request.params[:two_factor_token],
|
return true if Submitter.signed_id_verifier.verified(token, purpose: :email_two_factor) == link_2fa_key
|
||||||
purpose: :email_two_factor) == link_2fa_key
|
|
||||||
end
|
end
|
||||||
|
|
||||||
false
|
false
|
||||||
|
|||||||
Reference in New Issue
Block a user