emails: send welcome mail on signup.
This commit is contained in:
@@ -65,6 +65,7 @@ class UsersController < ApplicationController
|
|||||||
@user.save
|
@user.save
|
||||||
if @user.errors.empty?
|
if @user.errors.empty?
|
||||||
session[:user_id] = @user.id
|
session[:user_id] = @user.id
|
||||||
|
UserMailer.welcome_user(@user).deliver_later
|
||||||
else
|
else
|
||||||
flash[:notice] = "Sign up failed: #{@user.errors.full_messages.join("; ")}"
|
flash[:notice] = "Sign up failed: #{@user.errors.full_messages.join("; ")}"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -16,4 +16,9 @@ class UserMailer < ApplicationMailer
|
|||||||
@user = user
|
@user = user
|
||||||
mail to: @user.email_with_name, subject: "Confirm your email address"
|
mail to: @user.email_with_name, subject: "Confirm your email address"
|
||||||
end
|
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
|
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_redirected_to User.last
|
||||||
assert_equal("xxx", User.last.name)
|
assert_equal("xxx", User.last.name)
|
||||||
|
assert_no_emails
|
||||||
end
|
end
|
||||||
|
|
||||||
should "create a user with a valid email" do
|
should "create a user with a valid email" do
|
||||||
@@ -128,6 +129,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||||||
assert_redirected_to User.last
|
assert_redirected_to User.last
|
||||||
assert_equal("xxx", User.last.name)
|
assert_equal("xxx", User.last.name)
|
||||||
assert_equal("test@gmail.com", User.last.email_address.address)
|
assert_equal("test@gmail.com", User.last.email_address.address)
|
||||||
|
assert_enqueued_email_with UserMailer, :welcome_user, args: [User.last]
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not create a user with an invalid email" do
|
should "not create a user with an invalid email" do
|
||||||
@@ -135,7 +137,9 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||||||
|
|
||||||
assert_no_difference("User.count") do
|
assert_no_difference("User.count") do
|
||||||
post users_path, params: { user: user_params }
|
post users_path, params: { user: user_params }
|
||||||
|
|
||||||
assert_response :success
|
assert_response :success
|
||||||
|
assert_no_emails
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -13,4 +13,9 @@ class UserMailerPreview < ActionMailer::Preview
|
|||||||
user = User.find(params[:id])
|
user = User.find(params[:id])
|
||||||
UserMailer.email_change_confirmation(user)
|
UserMailer.email_change_confirmation(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def welcome_user
|
||||||
|
user = User.find(params[:id])
|
||||||
|
UserMailer.welcome_user(user)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user