Add DMCA complaint form.

Add a form for submitting DMCA complaints. The complaint is emailed to
the site owner, and a confirmation email is sent to the submitter.
This commit is contained in:
evazion
2022-10-11 15:45:03 -05:00
parent 8fbc6d1d3a
commit 24bc6aa949
12 changed files with 278 additions and 12 deletions

View File

@@ -12,7 +12,7 @@ class ApplicationMailer < ActionMailer::Base
default from: "#{Danbooru.config.canonical_app_name} <#{Danbooru.config.contact_email}>", content_type: "text/html"
default "Message-ID": -> { "<#{SecureRandom.uuid}@#{Danbooru.config.hostname}>" }
def mail(user, require_verified_email:, **options)
def mail_user(user, require_verified_email:, **options)
# https://www.rfc-editor.org/rfc/rfc8058#section-3.1
#
# A mail receiver can do a one-click unsubscription by performing an HTTPS POST to the HTTPS URI in the
@@ -31,19 +31,20 @@ class ApplicationMailer < ActionMailer::Base
headers(params.to_h[:headers].to_h)
message = super(to: user.email_address&.address, **options)
message = mail(to: user.email_address&.address, **options)
message.perform_deliveries = user.can_receive_email?(require_verified_email: require_verified_email)
message
end
def self.with_request(request)
def self.with_request(request, **params)
with(
request: {
url: "#{request.method} #{request.url}",
remote_ip: request.remote_ip.to_s,
request_id: request.request_id.to_s,
session_id: request.session.id.to_s,
}
},
**params
)
end
end