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