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] if pw == ENV["ADMINPW"] 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 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 end