diff --git a/app/controllers/manager/administrateurs_controller.rb b/app/controllers/manager/administrateurs_controller.rb index 0b5cb39b3..3f0a63438 100644 --- a/app/controllers/manager/administrateurs_controller.rb +++ b/app/controllers/manager/administrateurs_controller.rb @@ -14,7 +14,7 @@ module Manager end def reinvite - Administrateur.find_inactive_by_id(params[:id]).invite! + Administrateur.find_inactive_by_id(params[:id]).invite!(current_administration.id) flash.notice = "Invitation renvoyée" redirect_to manager_administrateur_path(params[:id]) end diff --git a/app/lib/biz_dev.rb b/app/lib/biz_dev.rb new file mode 100644 index 000000000..65170e127 --- /dev/null +++ b/app/lib/biz_dev.rb @@ -0,0 +1,48 @@ +module BizDev + BIZ_DEV_MAPPING = { + 8 => + { + full_name: "Camille Garrigue", + pipedrive_id: 3189424 + }, + 9 => + { + full_name: "Philippe Vrignaud", + pipedrive_id: 2753338 + }, + 10 => + { + full_name: "Benjamin Doberset", + pipedrive_id: 4223834 + }, + 11 => + { + full_name: "Rédouane Bouchane", + pipedrive_id: 4438645 + } + } + + BIZ_DEV_IDS = BIZ_DEV_MAPPING.keys + + def full_name(administration_id) + id = ensure_proper_administration_id(administration_id) + + BIZ_DEV_MAPPING[id][:full_name] + end + + def pipedrive_id(administration_id) + id = ensure_proper_administration_id(administration_id) + + BIZ_DEV_MAPPING[id][:pipedrive_id] + end + + private + + def ensure_proper_administration_id(administration_id) + if administration_id.in?(BIZ_DEV_IDS) + administration_id + else + BIZ_DEV_IDS[administration_id % BIZ_DEV_IDS.length] + end + end +end diff --git a/app/mailers/administration_mailer.rb b/app/mailers/administration_mailer.rb index cbba1eb39..1c3442263 100644 --- a/app/mailers/administration_mailer.rb +++ b/app/mailers/administration_mailer.rb @@ -10,9 +10,10 @@ class AdministrationMailer < ApplicationMailer subject: subject) end - def invite_admin(admin, reset_password_token) + def invite_admin(admin, reset_password_token, administration_id) @reset_password_token = reset_password_token @admin = admin + @author_name = BizDev.full_name(administration_id) subject = "Activez votre compte administrateur" mail(to: admin.email, diff --git a/app/models/administrateur.rb b/app/models/administrateur.rb index e4fd48ca8..37242cb4b 100644 --- a/app/models/administrateur.rb +++ b/app/models/administrateur.rb @@ -44,14 +44,14 @@ class Administrateur < ApplicationRecord end end - def invite! + def invite!(administration_id) if active? raise "Impossible d'inviter un utilisateur déjà actif !" end reset_password_token = set_reset_password_token - AdministrationMailer.invite_admin(self, reset_password_token).deliver_later + AdministrationMailer.invite_admin(self, reset_password_token, administration_id).deliver_later reset_password_token end diff --git a/app/models/administration.rb b/app/models/administration.rb index 2428749f3..75b83697c 100644 --- a/app/models/administration.rb +++ b/app/models/administration.rb @@ -18,7 +18,7 @@ class Administration < ApplicationRecord if administrateur.save AdministrationMailer.new_admin_email(administrateur, self).deliver_later - administrateur.invite! + administrateur.invite!(id) User.create({ email: email, password: password diff --git a/app/views/administrateur_mailer/activate_before_expiration.haml b/app/views/administrateur_mailer/activate_before_expiration.haml index cfa239ddb..6f60a52cc 100644 --- a/app/views/administrateur_mailer/activate_before_expiration.haml +++ b/app/views/administrateur_mailer/activate_before_expiration.haml @@ -15,4 +15,4 @@ Nous restons à votre disposition si vous avez besoin d’accompagnement. %p - = render partial: "layouts/mailers/bizdev_signature" + = render partial: "layouts/mailers/bizdev_signature", locals: { author_name: "Camille Garrigue" } diff --git a/app/views/administration_mailer/invite_admin.html.haml b/app/views/administration_mailer/invite_admin.html.haml index 85a60ba37..1b0c515cf 100644 --- a/app/views/administration_mailer/invite_admin.html.haml +++ b/app/views/administration_mailer/invite_admin.html.haml @@ -20,4 +20,4 @@ = link_to(DOC_URL, DOC_URL) %p - = render partial: "layouts/mailers/bizdev_signature" + = render partial: "layouts/mailers/bizdev_signature", locals: { author_name: @author_name } diff --git a/app/views/layouts/mailers/_bizdev_signature.html.haml b/app/views/layouts/mailers/_bizdev_signature.html.haml index d9f078730..adff09cbb 100644 --- a/app/views/layouts/mailers/_bizdev_signature.html.haml +++ b/app/views/layouts/mailers/_bizdev_signature.html.haml @@ -1,7 +1,7 @@ Cordialement, %br %br -Camille Garrigue += author_name %br %br Équipe demarches-simplifiees.fr diff --git a/spec/mailers/previews/administration_mailer_preview.rb b/spec/mailers/previews/administration_mailer_preview.rb index a74761967..7e5633c31 100644 --- a/spec/mailers/previews/administration_mailer_preview.rb +++ b/spec/mailers/previews/administration_mailer_preview.rb @@ -8,7 +8,7 @@ class AdministrationMailerPreview < ActionMailer::Preview end def invite_admin - AdministrationMailer.invite_admin(Administrateur.last, "12345678") + AdministrationMailer.invite_admin(Administrateur.last, "12345678", 0) end def refuse_admin diff --git a/spec/models/administrateur_spec.rb b/spec/models/administrateur_spec.rb index cba312218..46eb0d920 100644 --- a/spec/models/administrateur_spec.rb +++ b/spec/models/administrateur_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe Administrateur, type: :model do + let(:administration) { create(:administration) } + describe 'assocations' do it { is_expected.to have_and_belong_to_many(:gestionnaires) } it { is_expected.to have_many(:procedures) } @@ -53,14 +55,14 @@ describe Administrateur, type: :model do describe '#find_inactive_by_token' do let(:administrateur) { create(:administration).invite_admin('paul@tps.fr') } - let(:reset_password_token) { administrateur.invite! } + let(:reset_password_token) { administrateur.invite!(administration.id) } it { expect(Administrateur.find_inactive_by_token(reset_password_token)).not_to be_nil } end describe '#reset_password' do let(:administrateur) { create(:administration).invite_admin('paul@tps.fr') } - let(:reset_password_token) { administrateur.invite! } + let(:reset_password_token) { administrateur.invite!(administration.id) } it { expect(Administrateur.reset_password(reset_password_token, '12345678').errors).to be_empty } it { expect(Administrateur.reset_password('123', '12345678').errors).not_to be_empty }