From 79beb7f3fa46989b48fc0ee54e44bfdd805156e8 Mon Sep 17 00:00:00 2001
From: Ahmad Farhat
Date: Mon, 22 Mar 2021 19:26:51 -0400
Subject: [PATCH] Added valid until text to invite email (#2599)
---
app/controllers/admins_controller.rb | 2 +-
app/controllers/concerns/emailer.rb | 4 ++--
app/controllers/sessions_controller.rb | 5 ++++-
app/mailers/user_mailer.rb | 3 ++-
app/views/user_mailer/invite_email.html.erb | 6 +++++-
config/locales/en.yml | 1 +
test/mailers/previews/user_mailer_preview.rb | 5 ++---
7 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/app/controllers/admins_controller.rb b/app/controllers/admins_controller.rb
index dc7bcc40..f4f7b1b1 100644
--- a/app/controllers/admins_controller.rb
+++ b/app/controllers/admins_controller.rb
@@ -145,7 +145,7 @@ class AdminsController < ApplicationController
emails.each do |email|
invitation = create_or_update_invite(email)
- send_invitation_email(current_user.name, email, invitation.invite_token)
+ send_invitation_email(current_user.name, email, invitation)
end
redirect_back fallback_location: admins_path
diff --git a/app/controllers/concerns/emailer.rb b/app/controllers/concerns/emailer.rb
index aeb48b1d..628206a0 100644
--- a/app/controllers/concerns/emailer.rb
+++ b/app/controllers/concerns/emailer.rb
@@ -70,11 +70,11 @@ module Emailer
end
# Sends inivitation to join
- def send_invitation_email(name, email, token)
+ def send_invitation_email(name, email, invite)
begin
return unless Rails.configuration.enable_email_verification
- UserMailer.invite_email(name, email, invitation_link(token), @settings).deliver_now
+ UserMailer.invite_email(name, email, invite.updated_at, invitation_link(invite.invite_token), @settings).deliver_now
rescue => e
logger.error "Support: Error in email delivery: #{e}"
flash[:alert] = I18n.t(params[:message], default: I18n.t("delivery_error"))
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 4fc9d014..e10ab4e9 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -88,7 +88,10 @@ class SessionsController < ApplicationController
# Check that the user is a Greenlight account
return redirect_to(root_path, alert: I18n.t("invalid_login_method")) unless user.greenlight_account?
# Check that the user has verified their account
- return redirect_to(account_activation_path(digest: user.activation_digest)) unless user.activated?
+ unless user.activated?
+ user.create_activation_token
+ return redirect_to(account_activation_path(digest: user.activation_digest))
+ end
end
login(user)
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index 41d9a046..c8470e14 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -64,13 +64,14 @@ class UserMailer < ApplicationMailer
mail to: user.email, subject: t('mailer.user.demoted.subtitle', role: translated_role_name(role))
end
- def invite_email(name, email, url, settings)
+ def invite_email(name, email, invite_date, url, settings)
@settings = settings
@name = name
@email = email
@url = url
@image = logo_image
@color = user_color
+ @date = "#{(invite_date + 2.days).strftime('%b %d, %Y %-I:%M%P')} UTC"
mail to: email, subject: t('mailer.user.invite.subject')
end
diff --git a/app/views/user_mailer/invite_email.html.erb b/app/views/user_mailer/invite_email.html.erb
index a822b6ce..feaa7d9c 100644
--- a/app/views/user_mailer/invite_email.html.erb
+++ b/app/views/user_mailer/invite_email.html.erb
@@ -32,10 +32,14 @@
<%= t('mailer.user.invite.username', email: @email) %>
-
+
<%= t('mailer.user.invite.signup_info') %>
+
+ <%= t('mailer.user.invite.valid', date: @date) %>
+
+
<%= t('mailer.user.invite.signup_link') %>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c84e8591..56742657 100755
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -356,6 +356,7 @@ en:
info: You have been invited to your own personal space by %{name}
signup_info: To signup using your email, click the button below and follow the steps.
signup_link: Sign Up
+ valid: "The invite is valid until: %{date}"
signup:
info: A user that was invited has signed up to use Greenlight.
admins_link: Visit the Organization Page
diff --git a/test/mailers/previews/user_mailer_preview.rb b/test/mailers/previews/user_mailer_preview.rb
index 4cab5da0..99705ec0 100644
--- a/test/mailers/previews/user_mailer_preview.rb
+++ b/test/mailers/previews/user_mailer_preview.rb
@@ -3,8 +3,7 @@
class UserMailerPreview < ActionMailer::Preview
def initialize(_params)
super
- @logo = "https://raw.githubusercontent.com/bigbluebutton/greenlight/master/app/assets/images/logo_with_text.png"
- @color = "#467fcf"
+ @settings = Setting.find_by(provider: "greenlight")
end
# Preview this email at
@@ -27,7 +26,7 @@ class UserMailerPreview < ActionMailer::Preview
# Preview this email at
# http://localhost:3000/rails/mailers/user_mailer/invite_email
def invite_email
- UserMailer.invite_email("Example User", "from@example.com", "http://example.com/signup", @logo, @color)
+ UserMailer.invite_email("Example User", "from@example.com", DateTime.now, "http://example.com/signup", @settings)
end
# Preview this email at