Force Logout Script
Script to perform bulk force logout of users based on a list of emails.
Usage
Fill in the emails variable with the list of emails to log out, then run the script.
emails = []
puts "\n=== Bulk Force Logout ==="
puts "Total emails: #{emails.size}"
puts '=' * 40
results = { success: [], failure: [] }
emails.each_with_index do |email, index|
email = email.strip.downcase
next if email.empty?
print "[#{index + 1}/#{emails.size}] #{email} ... "
params = { email: email }
result = SupportTools::Repositories::Auths::Logout.new(params).call
if result.success?
puts "[OK] #{result.value!}"
results[:success] << email
else
puts "[FAIL] #{result.failure}"
results[:failure] << { email: email, reason: result.failure }
end
rescue StandardError => e
puts "[ERR] - #{e.message}"
results[:failure] << { email: email, reason: e.message }
end
print_summary(results)
def print_summary(results)
total = results[:success].size + results[:failure].size
succeeded = results[:success].size
failed = results[:failure].size
puts "\n#{'=' * 40}"
puts "=== SUMMARY ==="
puts "Total processed : #{total}"
puts "Succeeded : #{succeeded}"
puts "Failed : #{failed}"
if results[:success].any?
puts "\n--- Successfully logged out ---"
results[:success].each { |email| puts " - #{email}" }
end
if results[:failure].any?
puts "\n--- Failed to log out ---"
results[:failure].each { |entry| puts " - #{entry[:email]} (#{entry[:reason]})" }
end
puts '=' * 40
end