Merge pull request #4912 from betagouv/3366-fix-remplir-demarche-en-cliquant-lien

permet à un instructeur de remplir une demarche en cliquant sur un lien
This commit is contained in:
krichtof 2020-03-20 11:43:56 +01:00 committed by GitHub
commit 402d749c24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 4 deletions

View file

@ -1,6 +1,7 @@
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
include TrustedDeviceConcern include TrustedDeviceConcern
include Pundit include Pundit
include Devise::StoreLocationExtension
MAINTENANCE_MESSAGE = 'Le site est actuellement en maintenance. Il sera à nouveau disponible dans un court instant.' MAINTENANCE_MESSAGE = 'Le site est actuellement en maintenance. Il sera à nouveau disponible dans un court instant.'
@ -198,7 +199,9 @@ class ApplicationController < ActionController::Base
# return at this location # return at this location
# after the device is trusted # after the device is trusted
store_location_for(:user, request.fullpath) if get_stored_location_for(:user).blank?
store_location_for(:user, request.fullpath)
end
send_login_token_or_bufferize(current_instructeur) send_login_token_or_bufferize(current_instructeur)
redirect_to link_sent_path(email: current_instructeur.email) redirect_to link_sent_path(email: current_instructeur.email)

View file

@ -1,6 +1,4 @@
class InvitesController < ApplicationController class InvitesController < ApplicationController
include Devise::StoreLocationExtension
before_action :authenticate_user!, only: [:create] before_action :authenticate_user!, only: [:create]
before_action :store_user_location!, only: [:show] before_action :store_user_location!, only: [:show]

View file

@ -1,6 +1,5 @@
module Users module Users
class DossiersController < UserController class DossiersController < UserController
include Devise::StoreLocationExtension
include DossierHelper include DossierHelper
layout 'procedure_context', only: [:identite, :update_identite, :siret, :update_siret] layout 'procedure_context', only: [:identite, :update_identite, :siret, :update_siret]

View file

@ -164,6 +164,7 @@ describe ApplicationController, type: :controller do
allow(@controller).to receive(:instructeur_signed_in?).and_return(instructeur_signed_in) allow(@controller).to receive(:instructeur_signed_in?).and_return(instructeur_signed_in)
allow(@controller).to receive(:sensitive_path).and_return(sensitive_path) allow(@controller).to receive(:sensitive_path).and_return(sensitive_path)
allow(@controller).to receive(:send_login_token_or_bufferize) allow(@controller).to receive(:send_login_token_or_bufferize)
allow(@controller).to receive(:get_stored_location_for).and_return(nil)
allow(@controller).to receive(:store_location_for) allow(@controller).to receive(:store_location_for)
allow(IPService).to receive(:ip_trusted?).and_return(ip_trusted) allow(IPService).to receive(:ip_trusted?).and_return(ip_trusted)
end end

View file

@ -110,4 +110,16 @@ feature 'Creating a new dossier:' do
end end
end end
end end
context 'when the user is not signed in' do
let(:instructeur) { create(:instructeur) }
let(:procedure) { create(:procedure, :published) }
scenario 'the user is an instructeur with untrusted device' do
visit commencer_path(path: procedure.path)
click_on "Jai déjà un compte"
sign_in_with(instructeur.email, instructeur.user.password, true)
expect(page).to have_current_path(commencer_path(path: procedure.path))
end
end
end end