# frozen_string_literal: true
namespace :api_auth do
desc 'Create a default user and make it superadmin' task :create_superadmin, [:tenant] => [:environment] do |_t, args| Apartment::Tenant.switch args[:tenant] do user = User.find_by_email('giovanni@montedelgallo.com') role = Role.find_by_name('superadmin') if user puts 'User giovanni@montedelgallo.com already exists' else user = User.create!(email: 'giovanni@montedelgallo.com', password: '123456') puts "User created with email: 'giovanni@montedelgallo.com', password: '123456'" end role ||= Role.create!(name: 'superadmin') user.roles << role end puts '###################################################' puts '##' puts '## USER CREATED:' puts '##' puts '## email: giovanni@montedelgallo.com' puts '## password: 123456' puts "## tenant: #{args[:tenant]}" puts '##' puts '###################################################' end desc 'create custom user' task :create_user, %i[tenant email password] => [:environment] do |_t, args| Apartment::Tenant.switch args[:tenant] do User.create!(email: args[:email], password: args[:password]) puts '###################################################' puts '##' puts '## USER CREATED:' puts '##' puts "## email: #{args[:email]}" puts "## password: #{args[:password]}" puts "## tenant: #{args[:tenant]}" puts '##' puts '###################################################' end end desc 'Reset user password' task :reset_password, %i[tenant email new_password] => [:environment] do |_t, args| # rails "auth:reset_password[uno, giovanni@montedelgallo.com, password]" Apartment::Tenant.switch args[:tenant] do user = User.find_by_email(args[:email]) user.password = args[:new_password] user.save end puts '###################################################' puts '##' puts '## USER PASSWORD RESET:' puts '##' puts "## email: #{args[:email]}" puts "## password: #{args[:new_password]}" puts "## tenant: #{args[:tenant]}" puts '##' puts '###################################################' end desc 'Make a user superadmin' task :promote_superadmin, %i[tenant email] => [:environment] do |_t, args| # rails "auth:reset_password[uno, giovanni@montedelgallo.com, password]" Apartment::Tenant.switch args[:tenant] do user = User.find_by_email(args[:email]) role = Role.find_by_name('superadmin') role ||= Role.create!(name: 'superadmin') user.roles << role end puts '###################################################' puts '##' puts '## USER PROMOTED TO SUPERADMIN:' puts '##' puts "## email: #{args[:email]}" puts "## tenant: #{args[:tenant]}" puts '##' puts '###################################################' end desc 'create admin' task :create_admin, %i[email password] => [:environment] do |_t, args| Admin.create!(email: args[:email], password: args[:password]) puts '###################################################' puts '##' puts '## ADMIN CREATED:' puts '##' puts "## email: #{args[:email]}" puts "## password: #{args[:password]}" puts '##' puts '###################################################' end
end