From 6227a46d38e60760fc0830401f20a1b2fdabd98a Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <daniel@molkentin.de>
Date: Mon, 20 Nov 2023 21:59:47 +0100
Subject: [PATCH] feat(migrations): Import password digests from Greenlight2
 (#5507)

* feat(migrations): Import password digests from Greenlight2

* Update external_controller.rb

* Update external_controller.rb

---------

Co-authored-by: Ahmad Farhat <ahmad.farhat@blindsidenetworks.com>
Co-authored-by: Ahmad Farhat <ahmad.af.farhat@gmail.com>
---
 .../api/v1/migrations/external_controller.rb           | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/app/controllers/api/v1/migrations/external_controller.rb b/app/controllers/api/v1/migrations/external_controller.rb
index f5191878..717af969 100644
--- a/app/controllers/api/v1/migrations/external_controller.rb
+++ b/app/controllers/api/v1/migrations/external_controller.rb
@@ -75,7 +75,7 @@ module Api
         end
 
         # POST /api/v1/migrations/users.json
-        # Expects: { user: { :name, :email, :external_id, :language, :role } }
+        # Expects: { user: { :name, :email, :password_digest, :provider, :external_id, :language, :role } }
         # Returns: { data: Array[serializable objects] , errors: Array[String] }
         # Does: Creates a user.
         def create_user
@@ -103,10 +103,8 @@ module Api
 
           return render_error(status: :bad_request, errors: user&.errors&.to_a) unless user.save
 
-          if user_hash[:provider] != 'greenlight'
-            user.password_digest = nil
-            user.save(validations: false)
-          end
+          user.password_digest = user_hash[:provider] == 'greenlight' ? user_hash[:password_digest] : nil
+          user.save(validations: false)
 
           render_data status: :created
         end
@@ -228,7 +226,7 @@ module Api
         end
 
         def user_params
-          decrypted_params.require(:user).permit(:name, :email, :provider, :external_id, :language, :role, :created_at)
+          decrypted_params.require(:user).permit(:name, :email, :password_digest, :provider, :external_id, :language, :role, :created_at)
         end
 
         def room_params
-- 
GitLab