emails: send welcome mail on signup.
This commit is contained in:
@@ -65,6 +65,7 @@ class UsersController < ApplicationController
|
||||
@user.save
|
||||
if @user.errors.empty?
|
||||
session[:user_id] = @user.id
|
||||
UserMailer.welcome_user(@user).deliver_later
|
||||
else
|
||||
flash[:notice] = "Sign up failed: #{@user.errors.full_messages.join("; ")}"
|
||||
end
|
||||
|
||||
@@ -16,4 +16,9 @@ class UserMailer < ApplicationMailer
|
||||
@user = user
|
||||
mail to: @user.email_with_name, subject: "Confirm your email address"
|
||||
end
|
||||
|
||||
def welcome_user(user)
|
||||
@user = user
|
||||
mail to: @user.email_with_name, subject: "Welcome to #{Danbooru.config.app_name}! Confirm your email address"
|
||||
end
|
||||
end
|
||||
|
||||
19
app/views/user_mailer/welcome_user.html.erb
Normal file
19
app/views/user_mailer/welcome_user.html.erb
Normal file
@@ -0,0 +1,19 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<body>
|
||||
<h2>Hi <%= @user.name %>,</h2>
|
||||
|
||||
<p>
|
||||
Welcome to <%= Danbooru.config.app_name %>! Click the link below to verify your email address.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= link_to "Verify email address", verify_user_email_url(@user, email_verification_key: Danbooru::MessageVerifier.new(:email_verification_key).generate(@user.email_address.id)) %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
By verifying your email address, you can receive site notifications and you can
|
||||
recover your account if you ever forget your password.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -119,6 +119,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
||||
|
||||
assert_redirected_to User.last
|
||||
assert_equal("xxx", User.last.name)
|
||||
assert_no_emails
|
||||
end
|
||||
|
||||
should "create a user with a valid email" do
|
||||
@@ -128,6 +129,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
||||
assert_redirected_to User.last
|
||||
assert_equal("xxx", User.last.name)
|
||||
assert_equal("test@gmail.com", User.last.email_address.address)
|
||||
assert_enqueued_email_with UserMailer, :welcome_user, args: [User.last]
|
||||
end
|
||||
|
||||
should "not create a user with an invalid email" do
|
||||
@@ -135,7 +137,9 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
||||
|
||||
assert_no_difference("User.count") do
|
||||
post users_path, params: { user: user_params }
|
||||
|
||||
assert_response :success
|
||||
assert_no_emails
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -13,4 +13,9 @@ class UserMailerPreview < ActionMailer::Preview
|
||||
user = User.find(params[:id])
|
||||
UserMailer.email_change_confirmation(user)
|
||||
end
|
||||
|
||||
def welcome_user
|
||||
user = User.find(params[:id])
|
||||
UserMailer.welcome_user(user)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user