add login_with_france_connect boolean at the FC connection

This commit is contained in:
Xavier J 2015-10-07 11:24:07 +02:00
parent 6db8efb078
commit 3d38f6fcdb
6 changed files with 57 additions and 37 deletions

View file

@ -1,5 +1,4 @@
#form_login{
text-align:center;
h4{
margin-top:11px;
}

View file

@ -23,6 +23,11 @@ class FranceConnectController < ApplicationController
sign_in @user
if current_user == @user
@user.login_with_france_connect = true
@user.save
end
redirect_to(controller: 'users/dossiers', action: :index)
end
rescue Rack::OAuth2::Client::Error => e

View file

@ -1,30 +1,30 @@
#div{style:'text-align:center'}
%div{style:'text-align:center'}
%h2#login_user Connexion
%br
%div#form_login.row
%div.col-md-6.col-lg-6
= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
%h4
= f.label :email
= f.email_field :email, autofocus: true, class: 'form-control'
%br
%h4
= f.label :password
= f.password_field :password, autocomplete: "off", class: 'form-control'
%br
/ - if devise_mapping.rememberable?
/ .field
/ = f.check_box :remember_me
/ = f.label :remember_me
.actions
= f.submit "Se connecter", class:'btn btn-primary btn-lg'
%br
%br
%div#form_login.row
%div.col-md-6.col-lg-6
= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
%h4
= f.label :email
= f.email_field :email, autofocus: true, class: 'form-control'
%br
%h4
= f.label :password
= f.password_field :password, autocomplete: "off", class: 'form-control'
%br
/ - if devise_mapping.rememberable?
/ .field
/ = f.check_box :remember_me
/ = f.label :remember_me
.actions
= f.submit "Se connecter", class:'btn btn-primary btn-lg'
%br
= render "users/shared/links"
= render "users/shared/links"
%div.col-md-6.col-lg-6.border-left
%img#logo_fc{src: '/assets/logo_FC_03.png', style:'max-height:180px'}
%br
%button.btn.btn-info.btn-lg
= link_to "Se connecter", '/france_connect', id: 'france_connect', style:'color:white; text-decoration: none'
%div.col-md-6.col-lg-6.border-left
%img#logo_fc{src: '/assets/logo_FC_03.png', style:'max-height:180px'}
%br
%button.btn.btn-info.btn-lg
= link_to "Connexion", '/france_connect', id: 'france_connect', style:'color:white; text-decoration: none'

View file

@ -0,0 +1,5 @@
class AddLoginWithFranceConnectToUser < ActiveRecord::Migration
def change
add_column :users, :login_with_france_connect, :boolean, :default => false
end
end

View file

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20151006155256) do
ActiveRecord::Schema.define(version: 20151007085022) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -44,8 +44,8 @@ ActiveRecord::Schema.define(version: 20151006155256) do
t.string "montant_aide_demande"
t.integer "procedure_id"
t.date "date_previsionnelle"
t.datetime "created_at", default: '2015-09-22 09:25:29'
t.datetime "updated_at", default: '2015-09-22 09:25:29'
t.datetime "created_at"
t.datetime "updated_at"
t.string "state"
t.integer "user_id"
end
@ -110,7 +110,7 @@ ActiveRecord::Schema.define(version: 20151006155256) do
t.integer "type_de_piece_justificative_id"
end
add_index "pieces_justificatives", ["type_de_piece_justificative_id"], name: "index_pieces_justificatives_on_type_de_piece_justificative_id", using: :btree
add_index "pieces_justificatives", ["type_de_piece_justificative_id"], name: "index_pieces_justificatives_on_type_piece_jointe_id", using: :btree
create_table "procedures", force: :cascade do |t|
t.string "libelle"
@ -118,9 +118,10 @@ ActiveRecord::Schema.define(version: 20151006155256) do
t.string "organisation"
t.string "direction"
t.string "lien_demarche"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "test"
t.boolean "use_api_carto", default: false
end
create_table "types_de_piece_justificative", force: :cascade do |t|
@ -133,18 +134,19 @@ ActiveRecord::Schema.define(version: 20151006155256) do
end
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip"
t.inet "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "login_with_france_connect", default: false
t.string "siret"
end

View file

@ -20,9 +20,18 @@ describe FranceConnectController, type: :controller do
let(:code) { 'plop' }
context 'when code is correct' do
let(:email) { 'patator@cake.com' }
let(:current_user) { User.find_by_email(email) }
before do
allow(FranceConnectService).to receive(:retrieve_user_informations).and_return(Hashie::Mash.new(email: 'patator@cake.com'))
allow(FranceConnectService).to receive(:retrieve_user_informations).and_return(Hashie::Mash.new(email: email))
get :callback, code: code
end
it 'login_with_france_connect user attribut is true' do
expect(current_user.login_with_france_connect).to be_truthy
end
it 'redirect to dossiers list' do
get :callback, code: code
expect(response).to redirect_to(controller: 'users/dossiers', action: :index)