Retroactively pre(?)activate users for gestionnaires and administrateurs
This commit is contained in:
parent
ddbf34f5fa
commit
7c6b60bfcb
2 changed files with 62 additions and 0 deletions
29
lib/tasks/2018_06_06_users_for_admins_and_gestionnaires.rake
Normal file
29
lib/tasks/2018_06_06_users_for_admins_and_gestionnaires.rake
Normal file
|
@ -0,0 +1,29 @@
|
|||
namespace :'2018_06_06_users_for_admins_and_gestionnaires' do
|
||||
task preactivate: :environment do
|
||||
preactivate_users(Gestionnaire, 'accompagnateur') { |g| g.reset_password_token.nil? }
|
||||
preactivate_users(Administrateur) { |a| a.active? }
|
||||
end
|
||||
|
||||
def preactivate_users(model, role_name = nil, &block)
|
||||
table_name = model.table_name
|
||||
role_name ||= table_name.singularize
|
||||
|
||||
already_activated = model
|
||||
.joins("INNER JOIN users ON #{table_name}.email = users.email")
|
||||
.where(users: { confirmed_at: nil })
|
||||
.to_a
|
||||
.select(&block)
|
||||
|
||||
puts("Sending emails to #{already_activated.count} #{table_name} that were already confirmed")
|
||||
|
||||
already_activated.each { |m| PreactivateUsersMailer.reinvite(m, role_name).deliver_later }
|
||||
|
||||
count =
|
||||
User
|
||||
.joins("INNER JOIN #{table_name} ON #{table_name}.email = users.email")
|
||||
.where(confirmed_at: nil)
|
||||
.update_all(confirmed_at: DateTime.now)
|
||||
|
||||
puts("Fixed #{count} #{table_name} with unconfirmed user")
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue