From e2fc50afbc51d8c737afa241074bfcf4f4fbcba3 Mon Sep 17 00:00:00 2001 From: Khemissi Amir <amir.khemissi@insat.ucar.tn> Date: Fri, 21 Oct 2022 15:53:08 +0100 Subject: [PATCH] Resources migration: Minor improvement to tasks. (#4015) + Added capitalization on migrated roles names. + Auto mapping of v2 default roles names to v3 names. + Better filtering to migrated users records. --- lib/tasks/migrations/migrations.rake | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/tasks/migrations/migrations.rake b/lib/tasks/migrations/migrations.rake index 3c87f0a7..4c9c9f21 100644 --- a/lib/tasks/migrations/migrations.rake +++ b/lib/tasks/migrations/migrations.rake @@ -1,6 +1,7 @@ # frozen_string_literal: true namespace :migrations do + DEFAULT_ROLES_MAP = { "admin" => "Administrator", "user" => "User" }.freeze COMMON = { headers: { "Content-Type" => "application/json" }, batch_size: 1000, @@ -13,7 +14,7 @@ namespace :migrations do Role.select(:id, :name) .where.not(name: Role::RESERVED_ROLE_NAMES) .find_each(batch_size: COMMON[:batch_size]) do |r| - params = { role: { name: r.name } } + params = { role: { name: r.name.capitalize } } response = Net::HTTP.post(uri('roles'), payload(params), COMMON[:headers]) case response @@ -39,10 +40,14 @@ namespace :migrations do start, stop = range(args) has_encountred_issue = 0 + filtered_roles_names = Role::RESERVED_ROLE_NAMES - %w[admin user] User.select(:id, :uid, :name, :email, :social_uid, :language, :role_id) + .joins(:role) + .where.not(roles: { name: filtered_roles_names }, deleted: true) .find_each(start: start, finish: stop, batch_size: COMMON[:batch_size]) do |u| - params = { user: { name: u.name, email: u.email, external_id: u.social_uid, language: u.language, role: u.role.name } } + role_name = infer_role_name(u.role.name) + params = { user: { name: u.name, email: u.email, external_id: u.social_uid, language: u.language, role: role_name } } response = Net::HTTP.post(uri('users'), payload(params), COMMON[:headers]) case response @@ -111,4 +116,8 @@ namespace :migrations do [start, stop] end + + def infer_role_name(name) + DEFAULT_ROLES_MAP[name] || name.capitalize + end end -- GitLab