commit
9f8083f69c
5 changed files with 19 additions and 8 deletions
|
@ -2,8 +2,8 @@ class Administrateurs::ActivateBeforeExpirationJob < ApplicationJob
|
|||
queue_as :cron
|
||||
|
||||
def perform(*args)
|
||||
Administrateur.inactive.where(created_at: 2.days.ago.all_day).each do |a|
|
||||
AdministrateurMailer.activate_before_expiration(a).deliver_later
|
||||
Administrateur.inactive.where(created_at: 3.days.ago.all_day).each do |a|
|
||||
a.remind_invitation!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
class AdministrateurMailer < ApplicationMailer
|
||||
layout 'mailers/layout'
|
||||
|
||||
def activate_before_expiration(administrateur)
|
||||
def activate_before_expiration(administrateur, reset_password_token)
|
||||
@administrateur = administrateur
|
||||
@expiration_date = administrateur.reset_password_sent_at + Devise.reset_password_within
|
||||
@reset_password_token = reset_password_token
|
||||
@expiration_date = @administrateur.reset_password_sent_at + Devise.reset_password_within
|
||||
mail(to: administrateur.email,
|
||||
subject: "demarches-simplifiees.fr - N'oubliez pas d'activer votre compte administrateur",
|
||||
reply_to: "contact@demarches-simplifiees.fr")
|
||||
|
|
|
@ -55,6 +55,16 @@ class Administrateur < ApplicationRecord
|
|||
reset_password_token
|
||||
end
|
||||
|
||||
def remind_invitation!
|
||||
if active?
|
||||
raise "Impossible d'envoyer un rappel d'invitation à un utilisateur déjà actif !"
|
||||
end
|
||||
|
||||
reset_password_token = set_reset_password_token
|
||||
|
||||
AdministrateurMailer.activate_before_expiration(self, reset_password_token).deliver_later
|
||||
end
|
||||
|
||||
def invitation_expired?
|
||||
!active && !reset_password_period_valid?
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ Votre compte a été créé mais reste inactif, il arrivera à expiration le #{@
|
|||
%br
|
||||
%br
|
||||
Afin d’activer votre compte, veuillez cliquer sur le lien ci-dessous :
|
||||
= link_to(admin_activate_url(token: @administrateur.reset_password_token), admin_activate_url(token: @administrateur.reset_password_token))
|
||||
= link_to(admin_activate_url(token: @reset_password_token), admin_activate_url(token: @reset_password_token))
|
||||
%br
|
||||
%br
|
||||
Nous restons à votre disposition si vous avez besoin d’accompagnement.
|
||||
|
|
|
@ -32,13 +32,13 @@ RSpec.describe Administrateurs::ActivateBeforeExpirationJob, type: :job do
|
|||
it { expect(AdministrateurMailer).not_to have_received(:activate_before_expiration) }
|
||||
end
|
||||
|
||||
context "created 2 days ago" do
|
||||
context "created 3 days ago" do
|
||||
before do
|
||||
administrateur.update_columns(created_at: DateTime.new(2018, 03, 18, 20, 00))
|
||||
administrateur.update_columns(created_at: DateTime.new(2018, 03, 17, 20, 00))
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(AdministrateurMailer).to have_received(:activate_before_expiration).with(administrateur) }
|
||||
it { expect(AdministrateurMailer).to have_received(:activate_before_expiration).with(administrateur, kind_of(String)) }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue