Merge pull request #4477 from betagouv/fix_4473_invite_an_administrateur
Répare l'invitation des administrateurs
This commit is contained in:
commit
1adda1b405
4 changed files with 44 additions and 9 deletions
|
@ -47,14 +47,13 @@ class User < ApplicationRecord
|
|||
end
|
||||
|
||||
def invite_administrateur!(administration_id)
|
||||
if administrateur.active?
|
||||
raise "Impossible d'inviter un utilisateur déjà actif !"
|
||||
reset_password_token = nil
|
||||
|
||||
if !administrateur.active?
|
||||
reset_password_token = set_reset_password_token
|
||||
end
|
||||
|
||||
reset_password_token = set_reset_password_token
|
||||
AdministrationMailer.invite_admin(self, reset_password_token, administration_id).deliver_later
|
||||
|
||||
reset_password_token
|
||||
end
|
||||
|
||||
def remind_invitation!
|
||||
|
|
|
@ -9,10 +9,15 @@
|
|||
%p
|
||||
Votre compte administrateur a été créé pour l'adresse email #{@admin.email}.
|
||||
|
||||
%p
|
||||
%b
|
||||
Pour l’activer, cliquez sur le lien suivant :
|
||||
= link_to(admin_activate_url(token: @reset_password_token), admin_activate_url(token: @reset_password_token))
|
||||
- if @reset_password_token.present?
|
||||
%p
|
||||
%b
|
||||
Pour l’activer, cliquez sur le lien suivant :
|
||||
= link_to(admin_activate_url(token: @reset_password_token), admin_activate_url(token: @reset_password_token))
|
||||
- else
|
||||
%p
|
||||
Pour vous connecter, cliquez sur le lien suivant :
|
||||
= link_to(new_user_session_url, new_user_session_url)
|
||||
|
||||
%p
|
||||
= render partial: "layouts/mailers/bizdev_signature", locals: { author_name: @author_name }
|
||||
|
|
|
@ -11,6 +11,10 @@ class AdministrationMailerPreview < ActionMailer::Preview
|
|||
AdministrationMailer.invite_admin(administrateur, "12345678", 0)
|
||||
end
|
||||
|
||||
def invite_admin_whose_already_has_an_account
|
||||
AdministrationMailer.invite_admin(administrateur, nil, 0)
|
||||
end
|
||||
|
||||
def refuse_admin
|
||||
AdministrationMailer.refuse_admin('bad_admin@pipo.com')
|
||||
end
|
||||
|
|
|
@ -164,4 +164,31 @@ describe User, type: :model do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'invite_administrateur!' do
|
||||
let(:administration) { create(:administration) }
|
||||
let(:administrateur) { create(:administrateur) }
|
||||
let(:user) { administrateur.user }
|
||||
|
||||
let(:mailer_double) { double('mailer', deliver_later: true) }
|
||||
|
||||
before { allow(AdministrationMailer).to receive(:invite_admin).and_return(mailer_double) }
|
||||
|
||||
subject { user.invite_administrateur!(administration.id) }
|
||||
|
||||
context 'when the user is inactif' do
|
||||
before { subject }
|
||||
|
||||
it { expect(AdministrationMailer).to have_received(:invite_admin).with(user, kind_of(String), administration.id) }
|
||||
end
|
||||
|
||||
context 'when the user is actif' do
|
||||
before do
|
||||
user.update(last_sign_in_at: Time.zone.now)
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(AdministrationMailer).to have_received(:invite_admin).with(user, nil, administration.id) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue