From c8ab72b2a4e19e052963319ab3ef141b2c675a8b Mon Sep 17 00:00:00 2001 From: SilentFlameCR Date: Mon, 27 Nov 2023 16:20:04 -0500 Subject: [PATCH 1/4] added user rake task set_admin_role --- lib/tasks/user.rake | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/tasks/user.rake b/lib/tasks/user.rake index 22cc08a4f9..68a8ebbd5e 100644 --- a/lib/tasks/user.rake +++ b/lib/tasks/user.rake @@ -43,6 +43,29 @@ namespace :user do exit 0 end + desc 'Set user role to Administrator' + task :set_admin_role, %i[email] => :environment do |_task, args| + email = args[:email] + + if email.blank? + info 'Please provide an email address of the user you wish to set to Administrator role.' + else + user = User.find_by(email: email, provider: 'greenlight') + if user + role = Role.find_by(name: 'Administrator', provider: 'greenlight') + if role + user.role = role + user.save! + success "User role set to Administrator for email: #{email}" + else + info "Role 'Administrator' not found for provider 'greenlight'" + end + else + info "User with email: #{email} not found" + end + end + end + private def check_role!(user:) From 919b4a9b07149d964abfa3f1a16aa564372b6a07 Mon Sep 17 00:00:00 2001 From: SilentFlameCR Date: Mon, 27 Nov 2023 16:27:36 -0500 Subject: [PATCH 2/4] fixed rubocop offenses --- lib/tasks/user.rake | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/tasks/user.rake b/lib/tasks/user.rake index 68a8ebbd5e..f68ad78de8 100644 --- a/lib/tasks/user.rake +++ b/lib/tasks/user.rake @@ -45,25 +45,25 @@ namespace :user do desc 'Set user role to Administrator' task :set_admin_role, %i[email] => :environment do |_task, args| - email = args[:email] - - if email.blank? - info 'Please provide an email address of the user you wish to set to Administrator role.' - else - user = User.find_by(email: email, provider: 'greenlight') - if user - role = Role.find_by(name: 'Administrator', provider: 'greenlight') - if role - user.role = role - user.save! - success "User role set to Administrator for email: #{email}" - else - info "Role 'Administrator' not found for provider 'greenlight'" - end + email = args[:email] + + if email.blank? + info 'Please provide an email address of the user you wish to set to Administrator role.' + else + user = User.find_by(email:, provider: 'greenlight') + if user + role = Role.find_by(name: 'Administrator', provider: 'greenlight') + if role + user.role = role + user.save! + success "User role set to Administrator for email: #{email}" else - info "User with email: #{email} not found" + info "Role 'Administrator' not found for provider 'greenlight'" end + else + info "User with email: #{email} not found" end + end end private From 4b9906b599e2d636284bcd2e51ff195b814c3978 Mon Sep 17 00:00:00 2001 From: SilentFlameCR Date: Tue, 28 Nov 2023 10:28:31 -0500 Subject: [PATCH 3/4] added guard clauses to user:set_admin_role rake task --- lib/tasks/user.rake | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/lib/tasks/user.rake b/lib/tasks/user.rake index f68ad78de8..d615b8eb0b 100644 --- a/lib/tasks/user.rake +++ b/lib/tasks/user.rake @@ -47,23 +47,22 @@ namespace :user do task :set_admin_role, %i[email] => :environment do |_task, args| email = args[:email] - if email.blank? - info 'Please provide an email address of the user you wish to set to Administrator role.' - else - user = User.find_by(email:, provider: 'greenlight') - if user - role = Role.find_by(name: 'Administrator', provider: 'greenlight') - if role - user.role = role - user.save! - success "User role set to Administrator for email: #{email}" - else - info "Role 'Administrator' not found for provider 'greenlight'" - end - else - info "User with email: #{email} not found" - end - end + # return err if no user email provided + err 'Please provide an email address of the user you wish to set to Administrator role.' if email.blank? + + user = User.find_by(email:, provider: 'greenlight') + + # return err if user not found + err "User with email: #{email} not found" if user.blank? + + role = Role.find_by(name: 'Administrator', provider: 'greenlight') + + # return err if Administrator role not found + err "Role 'Administrator' not found for provider 'greenlight'" if role.blank? + + user.role = role + user.save! + success "User role set to Administrator for email: #{email}" end private From 55d416bbc4bc9781472cdf9406812bec5b868711 Mon Sep 17 00:00:00 2001 From: SilentFlameCR Date: Tue, 28 Nov 2023 10:56:38 -0500 Subject: [PATCH 4/4] minor refactor user.update rake task --- lib/tasks/user.rake | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/tasks/user.rake b/lib/tasks/user.rake index d615b8eb0b..018249ac52 100644 --- a/lib/tasks/user.rake +++ b/lib/tasks/user.rake @@ -60,8 +60,7 @@ namespace :user do # return err if Administrator role not found err "Role 'Administrator' not found for provider 'greenlight'" if role.blank? - user.role = role - user.save! + user.update(role:) success "User role set to Administrator for email: #{email}" end