demarches-normaliennes/lib/tasks/superadmin.rake

50 lines
1.2 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require Rails.root.join("lib", "tasks", "task_helper")
2018-12-21 15:19:24 +01:00
namespace :superadmin do
2018-12-21 15:20:34 +01:00
desc <<~EOD
List all super-admins
EOD
task list: :environment do
2020-11-05 18:56:03 +01:00
rake_puts "All SuperAdmins:"
SuperAdmin.pluck(:email).each do |a|
2018-12-21 15:20:34 +01:00
puts a
end
end
desc <<~EOD
Create a new super-admin account with the #EMAIL email address.
EOD
2018-12-21 15:19:24 +01:00
task :create, [:email] => :environment do |_t, args|
email = args[:email]
2018-12-21 15:20:34 +01:00
2020-11-05 18:56:03 +01:00
rake_puts "Creating SuperAdmin for #{email}"
password = Devise.friendly_token
a = SuperAdmin.new(email:, password:)
2018-12-21 15:20:34 +01:00
if a.save
rake_puts "#{a.email} created"
a.send_reset_password_instructions
rake_puts "Password reset instructions sent to #{a.email}"
user = User.create_or_promote_to_administrateur(email, password)
user.update!(team_account: true)
else
rake_puts "An error occured: #{a.errors.full_messages}"
2018-01-03 11:45:19 +01:00
end
end
2018-12-21 15:20:34 +01:00
desc <<~EOD
Delete the #EMAIL super-admin account
EOD
2018-12-21 15:19:24 +01:00
task :delete, [:email] => :environment do |_t, args|
2018-01-03 11:45:19 +01:00
email = args[:email]
2020-11-05 18:56:03 +01:00
rake_puts "Deleting SuperAdmin for #{email}"
a = SuperAdmin.find_by(email: email)
2018-01-03 11:45:19 +01:00
a.destroy
rake_puts "#{a.email} deleted"
2018-01-03 11:45:19 +01:00
end
end