From 36d7b311f78502b10ec5fc483b93d3795a237f40 Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Fri, 27 Mar 2026 13:10:22 -0700 Subject: [PATCH] refactor: Restructure authentication into separate actions --- app/actions/auth/login.rb | 63 ------------------------------- app/templates/auth/login.html.erb | 39 ------------------- 2 files changed, 102 deletions(-) delete mode 100644 app/actions/auth/login.rb delete mode 100644 app/templates/auth/login.html.erb diff --git a/app/actions/auth/login.rb b/app/actions/auth/login.rb deleted file mode 100644 index a06d76b..0000000 --- a/app/actions/auth/login.rb +++ /dev/null @@ -1,63 +0,0 @@ -# frozen_string_literal: true - -module EuchreCamp - module Actions - module Auth - class Login < EuchreCamp::Action - include Deps[ - users_repo: 'repositories.users', - players_repo: 'repositories.players' - ] - - # Show login form (GET) - class Show < Login - def handle(request, response) - render_with_player(request, response) - end - end - - # Process login (POST) - class Create < Login - def handle(request, response) - email = request.params[:email] - password = request.params[:password] - - user = users_repo.by_email(email) - - if user && valid_password?(user, password) - if user.locked? - response.flash[:error] = 'Account is locked. Please contact support.' - response.redirect_to '/login' - return - end - - # Record successful login - ip_address = request.env['REMOTE_ADDR'] - users_repo.record_login(user[:id], ip_address) - - # Create session - session = request.session - session[:user_id] = user[:id] - session[:player_id] = user[:player_id] - - response.flash[:success] = 'Welcome back!' - response.redirect_to '/rankings' - else - # Record failed login - users_repo.record_failed_login(user[:id]) if user - - response.flash[:error] = 'Invalid email or password' - response.redirect_to '/login' - end - end - - private - - def valid_password?(user, password) - BCrypt::Password.new(user[:password_digest]) == password - end - end - end - end - end -end diff --git a/app/templates/auth/login.html.erb b/app/templates/auth/login.html.erb deleted file mode 100644 index c38d99c..0000000 --- a/app/templates/auth/login.html.erb +++ /dev/null @@ -1,39 +0,0 @@ -
-
-

Login

- - <% if flash[:error] %> -
<%= flash[:error] %>
- <% end %> - - <% if flash[:success] %> -
<%= flash[:success] %>
- <% end %> - -
-
- - -
- -
- - -
- -
- -
- - -
- - -
-