From 529dc01435367cf153f85b0749ae0230cdaf71c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com>
Date: Mon, 11 Oct 2021 11:20:04 +0200
Subject: [PATCH] devise override

---
 .../users/add_university_to_request_params.rb      | 14 ++++++++++++++
 app/controllers/users/confirmations_controller.rb  |  9 +--------
 app/controllers/users/passwords_controller.rb      |  3 +++
 app/controllers/users/registrations_controller.rb  |  8 ++------
 app/controllers/users/sessions_controller.rb       |  9 +--------
 app/controllers/users/unlocks_controller.rb        |  3 +++
 config/routes.rb                                   |  4 +++-
 7 files changed, 27 insertions(+), 23 deletions(-)
 create mode 100644 app/controllers/concerns/users/add_university_to_request_params.rb
 create mode 100644 app/controllers/users/passwords_controller.rb
 create mode 100644 app/controllers/users/unlocks_controller.rb

diff --git a/app/controllers/concerns/users/add_university_to_request_params.rb b/app/controllers/concerns/users/add_university_to_request_params.rb
new file mode 100644
index 000000000..84feb6685
--- /dev/null
+++ b/app/controllers/concerns/users/add_university_to_request_params.rb
@@ -0,0 +1,14 @@
+module Users::AddUniversityToRequestParams
+  extend ActiveSupport::Concern
+
+  included do
+    prepend_before_action :add_university_to_request_params, only: :create
+  end
+
+  protected
+
+  def add_brand_to_request_params
+    # inject university_id in users params submitted
+    request.params[:user][:university_id] = current_university.id unless request.params[:user].nil?
+  end
+end
diff --git a/app/controllers/users/confirmations_controller.rb b/app/controllers/users/confirmations_controller.rb
index 8e2a6ea73..98000946c 100644
--- a/app/controllers/users/confirmations_controller.rb
+++ b/app/controllers/users/confirmations_controller.rb
@@ -1,10 +1,3 @@
 class Users::ConfirmationsController < Devise::ConfirmationsController
-  prepend_before_action :set_university, only: :create
-
-  protected
-
-  def set_university
-    return if request.params[:user].nil?
-    request.params[:user][:university_id] = current_university.id
-  end
+  include Users::AddUniversityToRequestParams
 end
diff --git a/app/controllers/users/passwords_controller.rb b/app/controllers/users/passwords_controller.rb
new file mode 100644
index 000000000..d02a3972e
--- /dev/null
+++ b/app/controllers/users/passwords_controller.rb
@@ -0,0 +1,3 @@
+class Users::PasswordsController < Devise::PasswordsController
+  include Users::AddUniversityToRequestParams
+end
diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb
index 15c254c20..779a6029c 100644
--- a/app/controllers/users/registrations_controller.rb
+++ b/app/controllers/users/registrations_controller.rb
@@ -1,15 +1,11 @@
 class Users::RegistrationsController < Devise::RegistrationsController
-  prepend_before_action :set_university, only: :create
+  include Users::AddUniversityToRequestParams
+
   before_action :configure_sign_up_params, only: :create
   before_action :configure_account_update_params, only: :update
 
   protected
 
-  def set_university
-    return if request.params[:user].nil?
-    request.params[:user][:university_id] = current_university.id
-  end
-
   def configure_sign_up_params
     devise_parameter_sanitizer.permit(:sign_up, keys: [:language_id, :first_name, :last_name])
   end
diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb
index 569a1c886..2e9ca5a51 100644
--- a/app/controllers/users/sessions_controller.rb
+++ b/app/controllers/users/sessions_controller.rb
@@ -1,10 +1,3 @@
 class Users::SessionsController < Devise::SessionsController
-  prepend_before_action :set_university, only: :create
-
-  protected
-
-  def set_university
-    return if request.params[:user].nil?
-    request.params[:user][:university_id] = current_university.id
-  end
+  include Users::AddUniversityToRequestParams
 end
diff --git a/app/controllers/users/unlocks_controller.rb b/app/controllers/users/unlocks_controller.rb
new file mode 100644
index 000000000..b1ef88921
--- /dev/null
+++ b/app/controllers/users/unlocks_controller.rb
@@ -0,0 +1,3 @@
+class Users::UnlocksController < Devise::UnlocksController
+  include Users::AddUniversityToRequestParams
+end
diff --git a/config/routes.rb b/config/routes.rb
index 0881881ca..7612e90a3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,8 +1,10 @@
 Rails.application.routes.draw do
   devise_for :users, controllers: {
     confirmations: 'users/confirmations',
+    passwords: 'users/passwords',
     registrations: 'users/registrations',
-    sessions: 'users/sessions'
+    sessions: 'users/sessions',
+    unlocks: 'users/unlocks'
   }
 
   resources :languages
-- 
GitLab