mirror of
https://github.com/docusealco/docuseal
synced 2026-11-07 07:22:32 -05:00
adjust resubmit
This commit is contained in:
1 parent
91ec29ad2c
commit
6d38c9f375
3 files changed
+34
-27
No files matched your search
@@ -52,8 +52,8 @@ class StartFormController < ApplicationController
|
||||
@submitter.assign_attributes(ip: request.remote_ip, ua: request.user_agent)
|
||||
end
|
||||
|
||||
if require_link_2fa?(@submitter, is_new_record:)
|
||||
handle_require_2fa(@submitter, is_new_record:)
|
||||
if require_link_2fa?(@template, @submitter)
|
||||
handle_require_2fa(@template, @submitter)
|
||||
elsif @submitter.errors.blank? && @submitter.save
|
||||
Submitters::StartForm.enqueue_new_submitter_jobs(@submitter) if is_new_record
|
||||
|
||||
@@ -98,7 +98,7 @@ class StartFormController < ApplicationController
|
||||
else
|
||||
Submitters::StartForm.find_or_initialize_submitter(
|
||||
template, submitter_params, exclude_completed: params[:resubmit].present?,
|
||||
request:, current_user:, ability: current_user && current_ability
|
||||
request:, current_user:
|
||||
)
|
||||
end
|
||||
|
||||
@@ -107,11 +107,13 @@ class StartFormController < ApplicationController
|
||||
submitter
|
||||
end
|
||||
|
||||
def require_link_2fa?(submitter, is_new_record:)
|
||||
return true if @template.preferences['shared_link_2fa'] == true
|
||||
def require_link_2fa?(template, submitter)
|
||||
return true if template.preferences['shared_link_2fa'] == true
|
||||
return false if cookies.encrypted[:start_form_slug] == submitter.slug
|
||||
return false if current_user && submitter.email == current_user.email &&
|
||||
current_user.account_id == submitter.account_id
|
||||
|
||||
!is_new_record && (current_user&.email != submitter.email || !current_ability.can?(:read, submitter))
|
||||
!submitter.new_record?
|
||||
end
|
||||
|
||||
def authorize_start!
|
||||
@@ -144,13 +146,13 @@ class StartFormController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def handle_require_2fa(submitter, is_new_record:)
|
||||
def handle_require_2fa(template, submitter)
|
||||
return render :show, status: :unprocessable_content if submitter.errors.present?
|
||||
|
||||
if Submitters::StartForm.verify_2fa_and_save_submitter(submitter, request, is_new_record:)
|
||||
if Submitters::StartForm.verify_2fa_and_save_submitter(submitter, request, is_new_record: submitter.new_record?)
|
||||
redirect_to submit_form_path(submitter.slug)
|
||||
else
|
||||
if defined?(Rollbar) && submitter.submission.template.preferences['shared_link_2fa'] != true
|
||||
if defined?(Rollbar) && template.preferences['shared_link_2fa'] != true
|
||||
Rollbar.info("2FA link requested: #{submitter.id}")
|
||||
end
|
||||
|
||||
@@ -161,10 +163,10 @@ class StartFormController < ApplicationController
|
||||
rescue Submitters::StartForm::NotSaved
|
||||
render :show, status: :unprocessable_content
|
||||
rescue Submitters::UnableToSendCode, Submitters::InvalidOtp => e
|
||||
redirect_to start_form_path(@template.slug, params: submitter_params.merge(email_verification: true)),
|
||||
redirect_to start_form_path(template.slug, params: submitter_params.merge(email_verification: true)),
|
||||
alert: e.message
|
||||
rescue RateLimit::LimitApproached
|
||||
redirect_to start_form_path(@template.slug, params: submitter_params.merge(email_verification: true)),
|
||||
redirect_to start_form_path(template.slug, params: submitter_params.merge(email_verification: true)),
|
||||
alert: I18n.t(:too_many_attempts)
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user