From 220f74610de9f1137cda51c2a9b12574522ff766 Mon Sep 17 00:00:00 2001 From: Cyteon <129582290+cyteon@users.noreply.github.com> Date: Mon, 29 Dec 2025 13:46:01 +0000 Subject: [PATCH 1/5] add /api/v1/users/me --- app/controllers/api/v1/users_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/users_controller.rb b/app/controllers/api/v1/users_controller.rb index 4da41728..5566d9f7 100644 --- a/app/controllers/api/v1/users_controller.rb +++ b/app/controllers/api/v1/users_controller.rb @@ -45,8 +45,11 @@ def index end def show - @user = User.find(params[:id]) - + if params[:id] == "me" + @user = @current_api_user + else + @user = User.find(params[:id]) + end rescue ActiveRecord::RecordNotFound render json: { error: "User not found" }, status: :not_found end From 894f9e186d1636985a29d9188a2e93bda3af4ce9 Mon Sep 17 00:00:00 2001 From: Cyteon <129582290+cyteon@users.noreply.github.com> Date: Mon, 29 Dec 2025 13:54:27 +0000 Subject: [PATCH 2/5] add api to extension tracking --- app/controllers/concerns/api_authenticatable.rb | 4 ---- app/controllers/concerns/extension_usage_trackable.rb | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/concerns/api_authenticatable.rb b/app/controllers/concerns/api_authenticatable.rb index 20033e18..2fb0426f 100644 --- a/app/controllers/concerns/api_authenticatable.rb +++ b/app/controllers/concerns/api_authenticatable.rb @@ -23,8 +23,4 @@ def authenticate_api_key false end end - - def current_api_user - @current_api_user - end end diff --git a/app/controllers/concerns/extension_usage_trackable.rb b/app/controllers/concerns/extension_usage_trackable.rb index 1571c2ec..281ca327 100644 --- a/app/controllers/concerns/extension_usage_trackable.rb +++ b/app/controllers/concerns/extension_usage_trackable.rb @@ -8,6 +8,12 @@ module ExtensionUsageTrackable private def track_extension_usage + api_key = request.headers["Authorization"]&.remove("Bearer ") + + if api_key.present? + @current_user = User.find_by(api_key: api_key) if api_key.present? + end + return unless current_user return unless redis_available? From 45d99077118bb6881b2853b521c18f1c717ab584 Mon Sep 17 00:00:00 2001 From: Cyteon <129582290+cyteon@users.noreply.github.com> Date: Mon, 29 Dec 2025 14:03:32 +0000 Subject: [PATCH 3/5] remove redundant check --- app/controllers/concerns/extension_usage_trackable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/extension_usage_trackable.rb b/app/controllers/concerns/extension_usage_trackable.rb index 281ca327..0d0e178f 100644 --- a/app/controllers/concerns/extension_usage_trackable.rb +++ b/app/controllers/concerns/extension_usage_trackable.rb @@ -11,7 +11,7 @@ def track_extension_usage api_key = request.headers["Authorization"]&.remove("Bearer ") if api_key.present? - @current_user = User.find_by(api_key: api_key) if api_key.present? + @current_user = User.find_by(api_key: api_key) end return unless current_user From 039b49615f9c19b6a7183f2e3266b45220e35bac Mon Sep 17 00:00:00 2001 From: Cyteon <129582290+cyteon@users.noreply.github.com> Date: Mon, 29 Dec 2025 14:50:35 +0000 Subject: [PATCH 4/5] refrence an current_api_user function instead --- app/controllers/api/v1/users_controller.rb | 2 +- app/controllers/concerns/api_authenticatable.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/users_controller.rb b/app/controllers/api/v1/users_controller.rb index 5566d9f7..9046a70e 100644 --- a/app/controllers/api/v1/users_controller.rb +++ b/app/controllers/api/v1/users_controller.rb @@ -46,7 +46,7 @@ def index def show if params[:id] == "me" - @user = @current_api_user + @user = current_api_user else @user = User.find(params[:id]) end diff --git a/app/controllers/concerns/api_authenticatable.rb b/app/controllers/concerns/api_authenticatable.rb index 2fb0426f..20033e18 100644 --- a/app/controllers/concerns/api_authenticatable.rb +++ b/app/controllers/concerns/api_authenticatable.rb @@ -23,4 +23,8 @@ def authenticate_api_key false end end + + def current_api_user + @current_api_user + end end From 0a2a13ecf12c21e1af1855067051c5994e14c97c Mon Sep 17 00:00:00 2001 From: Cyteon <129582290+cyteon@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:09:34 +0000 Subject: [PATCH 5/5] dont change @current_user --- app/controllers/concerns/extension_usage_trackable.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/concerns/extension_usage_trackable.rb b/app/controllers/concerns/extension_usage_trackable.rb index 0d0e178f..09b8da1c 100644 --- a/app/controllers/concerns/extension_usage_trackable.rb +++ b/app/controllers/concerns/extension_usage_trackable.rb @@ -10,11 +10,13 @@ module ExtensionUsageTrackable def track_extension_usage api_key = request.headers["Authorization"]&.remove("Bearer ") + user = current_user + if api_key.present? - @current_user = User.find_by(api_key: api_key) + user = User.find_by(api_key: api_key) end - return unless current_user + return unless user return unless redis_available? project_ids = extract_extension_project_ids @@ -23,7 +25,7 @@ def track_extension_usage timestamp = Time.current.iso8601 payloads = project_ids.map do |project_id| - { project_id: project_id, user_id: current_user.id, recorded_at: timestamp }.to_json + { project_id: project_id, user_id: user.id, recorded_at: timestamp }.to_json end Rails.cache.redis.with do |redis|