2025-02-03 14:42:41 -08:00
|
|
|
class AdminController < ApplicationController
|
|
|
|
before_action :authenticate_admin, only: [:index, :set_alt, :clear_alt ]
|
|
|
|
|
|
|
|
def index
|
|
|
|
@mains = Player.joins(:alternate_players).distinct
|
|
|
|
@player_names = Player.all.map(&:name)
|
|
|
|
end
|
|
|
|
|
|
|
|
def set_alt
|
|
|
|
main = Player.find_by(name: params[:main_selected])
|
|
|
|
alt = Player.find_by(name: params[:alt_selected])
|
|
|
|
|
|
|
|
if main && alt && main.id != alt.id
|
|
|
|
main.alternate_players << alt
|
|
|
|
alt.main_player_id = main.id
|
|
|
|
|
|
|
|
main.save
|
|
|
|
alt.save
|
|
|
|
end
|
|
|
|
|
|
|
|
refresh_or_redirect_to admin_path
|
|
|
|
end
|
|
|
|
|
|
|
|
def clear_alt
|
|
|
|
main = Player.find_by(id: params[:main_id])
|
|
|
|
alt = Player.find_by(id: params[:alt_id])
|
|
|
|
|
|
|
|
if main && alt && main.alternate_players.include?(alt)
|
|
|
|
main.alternate_players.delete(alt)
|
|
|
|
main.save
|
|
|
|
end
|
|
|
|
|
|
|
|
refresh_or_redirect_to admin_path
|
|
|
|
end
|
|
|
|
|
|
|
|
def login
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def login_submit
|
|
|
|
pw = params[:password]
|
2025-03-11 09:52:32 -07:00
|
|
|
if pw == ENV["ADMINPW"]
|
2025-02-03 14:42:41 -08:00
|
|
|
session[:user_id] = 1
|
|
|
|
redirect_to admin_path, notice: "Logged in!"
|
|
|
|
else
|
|
|
|
refresh_or_redirect_to admin_login_path, notice: "Login failed!"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def destroy
|
|
|
|
session.delete(:user_id)
|
|
|
|
redirect_to root_path, notice: "Logged out!"
|
|
|
|
end
|
2025-02-27 15:47:41 -08:00
|
|
|
|
|
|
|
def set_lootban(name)
|
|
|
|
if Lootban.count == 0
|
|
|
|
Lootban.create(name: name)
|
|
|
|
else
|
|
|
|
Lootban.first.name = name
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def delete_lootban
|
|
|
|
Lootban.delete_all
|
|
|
|
end
|
2025-02-03 14:42:41 -08:00
|
|
|
end
|