diff --git a/app/controllers/concerns/developer_oidc.rb b/app/controllers/concerns/developer_oidc.rb index c306e2360..44d049e8f 100644 --- a/app/controllers/concerns/developer_oidc.rb +++ b/app/controllers/concerns/developer_oidc.rb @@ -42,7 +42,8 @@ def static_info(attrs) "info" => { "name" => "Developer Account", "email" => attrs["info"]["email"] - } + }, + "callback" => attrs["info"]["insider"] } end diff --git a/app/controllers/insider/application_controller.rb b/app/controllers/insider/application_controller.rb index fd13efa92..2e17dda3d 100644 --- a/app/controllers/insider/application_controller.rb +++ b/app/controllers/insider/application_controller.rb @@ -14,6 +14,8 @@ class ApplicationController < ActionController::Base helper_method :current_user, :current_establishment + def home; end + def login; end def logout diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index ef7f2918c..430cd534e 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -18,26 +18,29 @@ def asp redirect_to asp_schoolings_path end - def insider - @insider_login = true - @insider_user = Insider::User.from_oidc(auth_hash).tap(&:save!) - - # Check limited access to this part ? - - sign_in(:insider_user, @insider_user) + def developer + oidcize_dev_hash(auth_hash) - redirect_to insider_home_path + oidc end - def developer - oidcize_dev_hash(auth_hash) + def masa + oidc + end + def fim oidc end def oidc - return insider if params[:callback].eql?("insider") # TODO: Modifier ou compléter + if auth_hash.info.callback.to_sym.eql?(:insider) + oidc_insider + else + oidc_aplypro + end + end + def oidc_aplypro parse_identity @user.save! @@ -55,12 +58,15 @@ def oidc choose_redirect_page! end - def masa - oidc - end + def oidc_insider + @insider_login = true + @insider_user = Insider::User.from_oidc(auth_hash).tap(&:save!) - def fim - oidc + # TODO: Check limited access to this part ? + + sign_in(:insider_user, @insider_user) + + redirect_to insider_home_path end def failure diff --git a/app/views/insider/application/home.html.haml b/app/views/insider/application/home.html.haml new file mode 100644 index 000000000..07dac8a5e --- /dev/null +++ b/app/views/insider/application/home.html.haml @@ -0,0 +1,3 @@ +.home.fr-container + .fr-grid-row.fr-grid-row--center + %p Bonjour \ No newline at end of file diff --git a/app/views/insider/application/login.html.haml b/app/views/insider/application/login.html.haml index 7bb06387a..1ee6798c0 100644 --- a/app/views/insider/application/login.html.haml +++ b/app/views/insider/application/login.html.haml @@ -5,4 +5,5 @@ name: t("omniauth.#{provider}.title"), description: t("omniauth.#{provider}.description"), button: t("omniauth.#{provider}.button"), - path: "/users/auth/#{provider}" + path: "/users/auth/#{provider}", + callback: :insider diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index 7accb980b..2fe5df636 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -15,7 +15,8 @@ :uai, :email, { "Portail de connexion" => portals }, - { "Role assumé" => ["Personnel de direction", "Personnel autorisé"] } + { "Role assumé" => ["Personnel de direction", "Personnel autorisé"] }, + callback: %w[aplypro insider] ] end diff --git a/config/initializers/omniauth_form.rb b/config/initializers/omniauth_form.rb index ca220145d..577221595 100644 --- a/config/initializers/omniauth_form.rb +++ b/config/initializers/omniauth_form.rb @@ -36,6 +36,7 @@ def request_phase form.to_response end + # NOTE: Compose les champs de `auth_hash` utilisé dans `omniauth_callbacks_controller` info do options.fields.each_with_object({}) do |field, hash| if field.is_a? Hash diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 9212fee93..f8ff15689 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -167,6 +167,7 @@ fr: insider: application: login: Connexion à APLyPro + home : Accueil stats: index: Statistiques school_years: diff --git a/config/routes.rb b/config/routes.rb index 8694815f3..ecf234458 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -21,7 +21,7 @@ delete "asp/logout", to: "asp/application#logout", as: :destroy_asp_user_session namespace :insider do - get "home" + get "home", to: "application#home" devise_for :users, skip: :all, class_name: "Insider::User" end