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:
@@ -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
|
||||
|
||||
@@ -5,7 +5,7 @@ class UserMailer < ApplicationMailer
|
||||
def dmail_notice(dmail)
|
||||
@dmail = dmail
|
||||
@user = dmail.to
|
||||
mail(
|
||||
mail_user(
|
||||
@user,
|
||||
from: "#{Danbooru.config.canonical_app_name} <#{Danbooru.config.notification_email}>",
|
||||
subject: "#{Danbooru.config.canonical_app_name}: #{dmail.from.name} sent you a message",
|
||||
@@ -16,7 +16,7 @@ class UserMailer < ApplicationMailer
|
||||
# The email sent when a user requests a password reset.
|
||||
def password_reset(user)
|
||||
@user = user
|
||||
mail(
|
||||
mail_user(
|
||||
@user,
|
||||
from: "#{Danbooru.config.canonical_app_name} <#{Danbooru.config.account_security_email}>",
|
||||
subject: "#{Danbooru.config.app_name} password reset request",
|
||||
@@ -27,7 +27,7 @@ class UserMailer < ApplicationMailer
|
||||
# The email sent when a user changes their email address.
|
||||
def email_change_confirmation(user)
|
||||
@user = user
|
||||
mail(
|
||||
mail_user(
|
||||
@user,
|
||||
from: "#{Danbooru.config.canonical_app_name} <#{Danbooru.config.account_security_email}>",
|
||||
subject: "Confirm your email address",
|
||||
@@ -38,11 +38,20 @@ class UserMailer < ApplicationMailer
|
||||
# The email sent when a new user signs up with an email address.
|
||||
def welcome_user(user)
|
||||
@user = user
|
||||
mail(
|
||||
mail_user(
|
||||
@user,
|
||||
from: "#{Danbooru.config.canonical_app_name} <#{Danbooru.config.welcome_user_email}>",
|
||||
subject: "Welcome to #{Danbooru.config.app_name}! Confirm your email address",
|
||||
require_verified_email: false,
|
||||
)
|
||||
end
|
||||
|
||||
def dmca_complaint(to:)
|
||||
@dmca = params[:dmca]
|
||||
mail(
|
||||
from: Danbooru.config.dmca_email,
|
||||
to: to,
|
||||
subject: "DMCA complaint",
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user