From 43fdb07083f757a5d4dd1b9844698d1f71236a12 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Tue, 9 Sep 2025 11:58:50 +0930 Subject: [PATCH] Fix invalid admin user id in session --- .../concerns/koi/controller/has_admin_users.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/koi/controller/has_admin_users.rb b/app/controllers/concerns/koi/controller/has_admin_users.rb index de1dd4b8a..0a296c567 100644 --- a/app/controllers/concerns/koi/controller/has_admin_users.rb +++ b/app/controllers/concerns/koi/controller/has_admin_users.rb @@ -8,15 +8,24 @@ module HasAdminUsers included do helper_method :admin_signed_in? helper_method :current_admin_user + + # @deprecated use current admin user instead helper_method :current_admin end def admin_signed_in? current_admin_user.present? + rescue ActiveRecord::RecordNotFound + false end def current_admin_user - @current_admin_user ||= Admin::User.find(session[:admin_user_id]) if session[:admin_user_id].present? + return @current_admin_user if instance_variable_defined?(:@current_admin_user) + return @current_admin_user = nil unless session.has_key?(:admin_user_id) + + @current_admin_user = Admin::User.find(session[:admin_user_id]) + ensure + session.delete(:admin_user_id) unless @current_admin_user end # @deprecated Use current_admin_user instead