Create user when creating gestionnaire (unified login)
This commit is contained in:
parent
fa762dbb39
commit
c8b7d0eeb3
2 changed files with 35 additions and 12 deletions
|
@ -21,8 +21,11 @@ class Admin::GestionnairesController < AdminController
|
|||
assign_gestionnaire!
|
||||
end
|
||||
|
||||
return redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure_id) unless procedure_id.nil?
|
||||
redirect_to admin_gestionnaires_path
|
||||
if procedure_id
|
||||
redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure_id)
|
||||
else
|
||||
redirect_to admin_gestionnaires_path
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
|
@ -30,19 +33,18 @@ class Admin::GestionnairesController < AdminController
|
|||
redirect_to admin_gestionnaires_path
|
||||
end
|
||||
|
||||
|
||||
def create_gestionnaire_params
|
||||
params.require(:gestionnaire).permit(:email)
|
||||
.merge(password: SecureRandom.hex(5))
|
||||
.merge(administrateurs: [current_administrateur])
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def new_gestionnaire!
|
||||
@gestionnaire = Gestionnaire.create(create_gestionnaire_params)
|
||||
attributes = params.require(:gestionnaire).permit(:email)
|
||||
.merge(password: SecureRandom.hex(5))
|
||||
|
||||
@gestionnaire = Gestionnaire.create(attributes.merge(
|
||||
administrateurs: [current_administrateur]
|
||||
))
|
||||
|
||||
if @gestionnaire.errors.messages.empty?
|
||||
User.create(attributes) if Features.unified_login
|
||||
flash.notice = 'Accompagnateur ajouté'
|
||||
GestionnaireMailer.new_gestionnaire(@gestionnaire.email, @gestionnaire.password).deliver_now!
|
||||
GestionnaireMailer.new_assignement(@gestionnaire.email, current_administrateur.email).deliver_now!
|
||||
|
@ -61,4 +63,4 @@ class Admin::GestionnairesController < AdminController
|
|||
#TODO Mailer no assign_to
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -147,6 +147,27 @@ describe Admin::GestionnairesController, type: :controller do
|
|||
}
|
||||
end
|
||||
end
|
||||
|
||||
context 'unified login' do
|
||||
before do
|
||||
allow(Features).to receive(:unified_login).and_return(true)
|
||||
subject
|
||||
end
|
||||
|
||||
it "creates associated user with same credentials" do
|
||||
gestionnaire = controller.instance_variable_get(:@gestionnaire)
|
||||
user = User.find_by(email: gestionnaire.email)
|
||||
expect(user.valid_password?(gestionnaire.password)).to be(true)
|
||||
end
|
||||
|
||||
context 'invalid email' do
|
||||
let(:email) { 'fail' }
|
||||
|
||||
it "won't create associated user" do
|
||||
expect(User.where(email: email).exists?).to be(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE #destroy' do
|
||||
|
@ -171,4 +192,4 @@ describe Admin::GestionnairesController, type: :controller do
|
|||
|
||||
it { expect { subject }.not_to change(Gestionnaire, :count) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue