Files
euchre_camp/scripts/create_admin.rb
T

60 lines
1.4 KiB
Ruby
Executable File

#!/usr/bin/env ruby
# frozen_string_literal: true
require_relative '../config/app'
require 'hanami/prepare'
require 'bcrypt'
# Get arguments
email = ARGV[0] || 'david@dhg.lol'
password = ARGV[1] || 'admin'
if password.nil?
puts "Error: Password required"
puts "Usage: ruby scripts/create_admin.rb [email] [password]"
exit 1
end
puts "Creating admin user..."
puts "Email: #{email}"
# Initialize repositories
players_repo = EuchreCamp::App['repositories.players']
users_repo = EuchreCamp::App['repositories.users']
# Check if user already exists
existing_user = users_repo.by_email(email)
if existing_user
puts "User #{email} already exists with ID #{existing_user.id}"
puts "Updating role to club_admin..."
users_repo.users.where(id: existing_user.id).update(role: 'club_admin', confirmed: true)
puts "Done!"
exit 0
end
# Create player
player = players_repo.create(name: email.split('@').first.capitalize, rating: 1000)
puts "Created player with ID: #{player[:id]}"
# Hash password
password_digest = BCrypt::Password.create(password)
puts "Password hashed"
# Create user
user = users_repo.create(
email: email,
password_digest: password_digest,
player_id: player[:id],
role: 'club_admin',
confirmed: true
)
puts ""
puts "✅ Admin user created successfully!"
puts " Email: #{email}"
puts " Player ID: #{player[:id]}"
puts " Role: club_admin"
puts " Confirmed: true"
puts ""
puts "Login at: http://localhost:2300/login"