Merge pull request #2720 from betagouv/stop-fc
Suppression du remplissage d'identité via France Connect
This commit is contained in:
commit
9e737992c4
13 changed files with 56 additions and 99 deletions
Binary file not shown.
Before Width: | Height: | Size: 25 KiB |
|
@ -238,18 +238,6 @@ div.pagination {
|
|||
left: 23% !important;
|
||||
}
|
||||
|
||||
#fconnect-profile {
|
||||
margin-top: 5px;
|
||||
display: inline-block;
|
||||
|
||||
a {
|
||||
color: #3471A9 !important;
|
||||
text-decoration: none;
|
||||
font-size: 16px !important;
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.no-padding {
|
||||
padding: 0;
|
||||
}
|
||||
|
|
|
@ -240,8 +240,6 @@ module NewGestionnaire
|
|||
end
|
||||
end.each do |group_key, fields|
|
||||
case group_key
|
||||
when 'france_connect_information'
|
||||
@dossiers = @dossiers.includes({ user: :france_connect_information })
|
||||
when 'type_de_champ_group'
|
||||
if fields.any? { |field| field['table'] == 'type_de_champ' }
|
||||
@dossiers = @dossiers.includes(:champs).references(:champs)
|
||||
|
|
|
@ -73,17 +73,6 @@ class Users::DossiersController < UsersController
|
|||
@siret = current_user.siret
|
||||
end
|
||||
|
||||
if @facade.procedure.for_individual? && current_user.loged_in_with_france_connect?
|
||||
individual = @facade.dossier.individual
|
||||
|
||||
individual.update_column :gender, @facade.dossier.france_connect_information.gender
|
||||
individual.update_column :nom, @facade.dossier.france_connect_information.family_name
|
||||
individual.update_column :prenom, @facade.dossier.france_connect_information.given_name
|
||||
|
||||
individual.birthdate = @facade.dossier.france_connect_information.birthdate
|
||||
individual.save
|
||||
end
|
||||
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
flash.alert = t('errors.messages.dossier_not_found')
|
||||
redirect_to url_for dossiers_path
|
||||
|
|
|
@ -83,8 +83,6 @@ class Dossier < ApplicationRecord
|
|||
def update_search_terms
|
||||
self.search_terms = [
|
||||
user&.email,
|
||||
france_connect_information&.given_name,
|
||||
france_connect_information&.family_name,
|
||||
*champs.flat_map(&:search_terms),
|
||||
*etablissement&.search_terms,
|
||||
individual&.nom,
|
||||
|
|
|
@ -19,7 +19,6 @@ class User < ApplicationRecord
|
|||
has_many :feedbacks, dependent: :destroy
|
||||
has_one :france_connect_information, dependent: :destroy
|
||||
|
||||
delegate :given_name, :family_name, :email_france_connect, :gender, :birthdate, :birthplace, :france_connect_particulier_id, to: :france_connect_information
|
||||
accepts_nested_attributes_for :france_connect_information
|
||||
|
||||
before_validation -> { sanitize_email(:email) }
|
||||
|
|
|
@ -9,12 +9,6 @@ class DossierFieldService
|
|||
field_hash('Demandeur', 'user', 'email')
|
||||
]
|
||||
|
||||
fields.push(
|
||||
field_hash('Civilité (FC)', 'france_connect_information', 'gender'),
|
||||
field_hash('Prénom (FC)', 'france_connect_information', 'given_name'),
|
||||
field_hash('Nom (FC)', 'france_connect_information', 'family_name')
|
||||
)
|
||||
|
||||
if !procedure.for_individual || (procedure.for_individual && procedure.individual_with_siret)
|
||||
fields.push(
|
||||
field_hash('SIREN', 'etablissement', 'entreprise_siren'),
|
||||
|
@ -53,8 +47,6 @@ class DossierFieldService
|
|||
dossier.send(column)
|
||||
when 'user'
|
||||
dossier.user.send(column)
|
||||
when 'france_connect_information'
|
||||
dossier.user.france_connect_information&.send(column)
|
||||
when 'etablissement'
|
||||
dossier.etablissement&.send(column)
|
||||
when 'type_de_champ'
|
||||
|
@ -82,11 +74,6 @@ class DossierFieldService
|
|||
when 'self'
|
||||
dossiers.where("? ILIKE ?", filter['column'], "%#{filter['value']}%")
|
||||
|
||||
when 'france_connect_information'
|
||||
dossiers
|
||||
.includes(user: :france_connect_information)
|
||||
.where("? ILIKE ?", "france_connect_informations.#{filter['column']}", "%#{filter['value']}%")
|
||||
|
||||
when 'type_de_champ', 'type_de_champ_private'
|
||||
relation = table == 'type_de_champ' ? :champs : :champs_private
|
||||
dossiers
|
||||
|
@ -133,11 +120,6 @@ class DossierFieldService
|
|||
return dossiers
|
||||
.order("#{column} #{order}")
|
||||
.pluck(:id)
|
||||
when 'france_connect_information'
|
||||
return dossiers
|
||||
.includes(user: :france_connect_information)
|
||||
.order("#{column} #{order}")
|
||||
.pluck(:id)
|
||||
when 'type_de_champ', 'type_de_champ_private'
|
||||
return dossiers
|
||||
.includes(table == 'type_de_champ' ? :champs : :champs_private)
|
||||
|
|
|
@ -1,12 +1,3 @@
|
|||
- if current_user.loged_in_with_france_connect?
|
||||
#fconnect-profile{ "data-fc-logout-url" => '/users/sign_out" data-method="delete' }
|
||||
%a.text-info{ href: "#" }
|
||||
= "#{current_user.given_name} #{current_user.family_name}"
|
||||
= link_to "/users/sign_out", method: :delete do
|
||||
%span.fa.fa-sign-out
|
||||
Se déconnecter
|
||||
|
||||
- else
|
||||
= link_to "/users/sign_out", method: :delete do
|
||||
%span.fa.fa-sign-out
|
||||
Se déconnecter
|
||||
= link_to "/users/sign_out", method: :delete do
|
||||
%span.fa.fa-sign-out
|
||||
Se déconnecter
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
namespace :'2018_10_03_remove_fc_from_procedure_presentation' do
|
||||
task run: :environment do
|
||||
Class.new do
|
||||
def run
|
||||
fix_displayed_fields
|
||||
fix_sort
|
||||
fix_filters
|
||||
end
|
||||
|
||||
def fix_displayed_fields
|
||||
ProcedurePresentation.where(%q`displayed_fields @> '[{"table": "france_connect_information"}]'`).each do |procedure_presentation|
|
||||
procedure_presentation.displayed_fields = procedure_presentation.displayed_fields.reject do |df|
|
||||
df['table'] == 'france_connect_information'
|
||||
end
|
||||
|
||||
procedure_presentation.save(validate: false)
|
||||
end
|
||||
end
|
||||
|
||||
def fix_sort
|
||||
ProcedurePresentation.where(%q`sort @> '{"table": "france_connect_information"}'`).each do |procedure_presentation|
|
||||
procedure_presentation.sort = {
|
||||
"order" => "desc",
|
||||
"table" => "notifications",
|
||||
"column" => "notifications"
|
||||
}
|
||||
|
||||
procedure_presentation.save(validate: false)
|
||||
end
|
||||
end
|
||||
|
||||
def fix_filters
|
||||
ProcedurePresentation.find_by_sql(
|
||||
<<~SQL
|
||||
SELECT procedure_presentations.*
|
||||
FROM procedure_presentations, LATERAL jsonb_each(filters)
|
||||
WHERE value @> '[{"table": "france_connect_information"}]'
|
||||
GROUP BY id;
|
||||
SQL
|
||||
).each do |procedure_presentation|
|
||||
procedure_presentation.filters.keys.each do |key|
|
||||
procedure_presentation.filters[key] = procedure_presentation.filters[key].reject do |filter|
|
||||
filter['table'] == 'france_connect_information'
|
||||
end
|
||||
end
|
||||
|
||||
procedure_presentation.save
|
||||
end
|
||||
end
|
||||
end.new.run
|
||||
end
|
||||
end
|
|
@ -75,7 +75,7 @@ describe Dossier do
|
|||
dossier.update_search_terms
|
||||
end
|
||||
|
||||
it { expect(dossier.search_terms).to eq("#{user.email} #{france_connect_information.given_name} #{france_connect_information.family_name} champ public #{etablissement.entreprise_siren} #{etablissement.entreprise_numero_tva_intracommunautaire} #{etablissement.entreprise_forme_juridique} #{etablissement.entreprise_forme_juridique_code} #{etablissement.entreprise_nom_commercial} #{etablissement.entreprise_raison_sociale} #{etablissement.entreprise_siret_siege_social} #{etablissement.entreprise_nom} #{etablissement.entreprise_prenom} #{etablissement.association_rna} #{etablissement.association_titre} #{etablissement.association_objet} #{etablissement.siret} #{etablissement.naf} #{etablissement.libelle_naf} #{etablissement.adresse} #{etablissement.code_postal} #{etablissement.localite} #{etablissement.code_insee_localite}") }
|
||||
it { expect(dossier.search_terms).to eq("#{user.email} champ public #{etablissement.entreprise_siren} #{etablissement.entreprise_numero_tva_intracommunautaire} #{etablissement.entreprise_forme_juridique} #{etablissement.entreprise_forme_juridique_code} #{etablissement.entreprise_nom_commercial} #{etablissement.entreprise_raison_sociale} #{etablissement.entreprise_siret_siege_social} #{etablissement.entreprise_nom} #{etablissement.entreprise_prenom} #{etablissement.association_rna} #{etablissement.association_titre} #{etablissement.association_objet} #{etablissement.siret} #{etablissement.naf} #{etablissement.libelle_naf} #{etablissement.adresse} #{etablissement.code_postal} #{etablissement.localite} #{etablissement.code_insee_localite}") }
|
||||
it { expect(dossier.private_search_terms).to eq('champ privé') }
|
||||
|
||||
context 'with an update' do
|
||||
|
@ -749,7 +749,6 @@ describe Dossier do
|
|||
|
||||
it { expect(dossier.get_value('self', 'created_at')).to eq(dossier.created_at) }
|
||||
it { expect(dossier.get_value('user', 'email')).to eq(user.email) }
|
||||
it { expect(dossier.get_value('france_connect_information', 'gender')).to eq(user.france_connect_information.gender) }
|
||||
it { expect(dossier.get_value('etablissement', 'entreprise_siren')).to eq(dossier.etablissement.entreprise_siren) }
|
||||
it { expect(dossier.get_value('etablissement', 'siret')).to eq(dossier.etablissement.siret) }
|
||||
it { expect(dossier.get_value('type_de_champ', @champ_public.type_de_champ.id.to_s)).to eq(dossier.champs.first.value) }
|
||||
|
|
|
@ -639,9 +639,6 @@ describe Procedure do
|
|||
{ "label" => 'Créé le', "table" => 'self', "column" => 'created_at' },
|
||||
{ "label" => 'Mis à jour le', "table" => 'self', "column" => 'updated_at' },
|
||||
{ "label" => 'Demandeur', "table" => 'user', "column" => 'email' },
|
||||
{ "label" => 'Civilité (FC)', "table" => 'france_connect_information', "column" => 'gender' },
|
||||
{ "label" => 'Prénom (FC)', "table" => 'france_connect_information', "column" => 'given_name' },
|
||||
{ "label" => 'Nom (FC)', "table" => 'france_connect_information', "column" => 'family_name' },
|
||||
{ "label" => 'SIREN', "table" => 'etablissement', "column" => 'entreprise_siren' },
|
||||
{ "label" => 'Forme juridique', "table" => 'etablissement', "column" => 'entreprise_forme_juridique' },
|
||||
{ "label" => 'Nom commercial', "table" => 'etablissement', "column" => 'entreprise_nom_commercial' },
|
||||
|
|
|
@ -118,22 +118,6 @@ describe DossierFieldService do
|
|||
it { is_expected.to eq([older_dossier, recent_dossier].map(&:id)) }
|
||||
end
|
||||
|
||||
context 'for france_connect_information table' do
|
||||
let(:table) { 'france_connect_information' }
|
||||
let(:column) { 'given_name' } # All other columns work the same, no extra test required
|
||||
let(:order) { 'asc' } # Desc works the same, no extra test required
|
||||
|
||||
let(:anna_dossier) { create(:dossier, procedure: procedure) }
|
||||
let(:zacharie_dossier) { create(:dossier, procedure: procedure) }
|
||||
|
||||
before do
|
||||
create(:france_connect_information, given_name: 'Anna', user: anna_dossier.user)
|
||||
create(:france_connect_information, given_name: 'Zacharie', user: zacharie_dossier.user)
|
||||
end
|
||||
|
||||
it { is_expected.to eq([anna_dossier, zacharie_dossier].map(&:id)) }
|
||||
end
|
||||
|
||||
context 'for type_de_champ table' do
|
||||
let(:table) { 'type_de_champ' }
|
||||
let(:column) { procedure.types_de_champ.first.id.to_s }
|
||||
|
@ -202,17 +186,6 @@ describe DossierFieldService do
|
|||
it { is_expected.to eq('bla@yopmail.com') }
|
||||
end
|
||||
|
||||
context 'for france_connect_information table' do
|
||||
let(:table) { 'france_connect_information' }
|
||||
let(:column) { 'given_name' } # All other columns work the same, no extra test required
|
||||
|
||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||
|
||||
before { create(:france_connect_information, given_name: 'Anna', user: dossier.user) }
|
||||
|
||||
it { is_expected.to eq('Anna') }
|
||||
end
|
||||
|
||||
context 'for etablissement table' do
|
||||
let(:table) { 'etablissement' }
|
||||
let(:column) { 'code_postal' } # All other columns work the same, no extra test required
|
||||
|
|
9
vendor/assets/stylesheets/franceconnect.scss
vendored
9
vendor/assets/stylesheets/franceconnect.scss
vendored
|
@ -39,15 +39,6 @@
|
|||
width: 38px;
|
||||
}
|
||||
|
||||
#fconnect-profile > a {
|
||||
padding: 15px 0 15px 50px;
|
||||
color: #ffffff;
|
||||
margin-right: 10px;
|
||||
font-size: 18px;
|
||||
background: image-url('logo_mini_FC.png') left center no-repeat;
|
||||
background-size: 40px;
|
||||
}
|
||||
|
||||
#fconnect-access {
|
||||
all: initial;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
|
|
Loading…
Reference in a new issue