diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 7a6587a5..0cd12d52 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -47,6 +47,7 @@ class AccountsController < ApplicationController authorize!(:manage, current_account) true_user.update!(locked_at: Time.current, email: true_user.email.sub('@', '+removed@')) + true_user.account.update!(archived_at: Time.current) # rubocop:disable Layout/LineLength render turbo_stream: turbo_stream.replace( diff --git a/app/controllers/send_submission_email_controller.rb b/app/controllers/send_submission_email_controller.rb index 45852360..c3a95158 100644 --- a/app/controllers/send_submission_email_controller.rb +++ b/app/controllers/send_submission_email_controller.rb @@ -29,7 +29,7 @@ class SendSubmissionEmailController < ApplicationController RateLimit.call("send-email-#{@submitter.id}", limit: 2, ttl: 5.minutes) - SubmitterMailer.documents_copy_email(@submitter, sig: true).deliver_later! unless already_sent?(@submitter) + SubmitterMailer.documents_copy_email(@submitter, sig: true).deliver_later! if can_send?(@submitter) respond_to do |f| f.html { render :success } @@ -39,8 +39,11 @@ class SendSubmissionEmailController < ApplicationController private - def already_sent?(submitter) - EmailEvent.exists?(tag: :submitter_documents_copy, email: submitter.email, emailable: submitter, - event_type: :send, created_at: SEND_DURATION.ago..Time.current) + def can_send?(submitter) + return false if submitter.account.archived_at? + return false if EmailEvent.exists?(tag: :submitter_documents_copy, email: submitter.email, emailable: submitter, + event_type: :send, created_at: SEND_DURATION.ago..Time.current) + + true end end diff --git a/app/controllers/submissions_preview_controller.rb b/app/controllers/submissions_preview_controller.rb index 40130e19..2ac30745 100644 --- a/app/controllers/submissions_preview_controller.rb +++ b/app/controllers/submissions_preview_controller.rb @@ -41,6 +41,9 @@ class SubmissionsPreviewController < ApplicationController def completed @submission = Submission.find_by!(slug: params[:submissions_preview_slug]) + + raise ActionController::RoutingError, I18n.t('not_found') if @submission.account.archived_at? + @template = @submission.template render :completed, layout: 'form' diff --git a/app/controllers/submit_form_controller.rb b/app/controllers/submit_form_controller.rb index f7bf565e..963594fa 100644 --- a/app/controllers/submit_form_controller.rb +++ b/app/controllers/submit_form_controller.rb @@ -75,7 +75,9 @@ class SubmitFormController < ApplicationController render json: { error: e.message }, status: :unprocessable_content end - def completed; end + def completed + raise ActionController::RoutingError, I18n.t('not_found') if @submitter.account.archived_at? + end def success; end