diff --git a/app/controllers/api/internal/magic_links_controller.rb b/app/controllers/api/internal/magic_links_controller.rb index d431023..3ff9e2d 100644 --- a/app/controllers/api/internal/magic_links_controller.rb +++ b/app/controllers/api/internal/magic_links_controller.rb @@ -38,7 +38,7 @@ module Api end def magic_link_params - params.permit(:continue_param) + params.permit(:continue_param, return_data: {}) end end end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index b056b34..d5fd757 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -156,6 +156,7 @@ class SessionsController < ApplicationController if valid_token valid_token.mark_used! session[:user_id] = valid_token.user_id + session[:return_data] = valid_token.return_data || {} if valid_token.continue_param.present? redirect_to valid_token.continue_param, notice: "Successfully signed in!" diff --git a/app/views/users/wakatime_setup_step_4.html.erb b/app/views/users/wakatime_setup_step_4.html.erb index 13032db..138447c 100644 --- a/app/views/users/wakatime_setup_step_4.html.erb +++ b/app/views/users/wakatime_setup_step_4.html.erb @@ -14,6 +14,12 @@ <% end %> -<%= link_to root_path do %> - +<% if (url = session.dig(:return_data, "url")) %> + <%= link_to url do %> + + <% end %> + <% else %> + <%= link_to root_path do %> + + <% end %> <% end %> diff --git a/db/migrate/20250613163710_add_return_data_to_sign_in_tokens.rb b/db/migrate/20250613163710_add_return_data_to_sign_in_tokens.rb new file mode 100644 index 0000000..a2675c5 --- /dev/null +++ b/db/migrate/20250613163710_add_return_data_to_sign_in_tokens.rb @@ -0,0 +1,5 @@ +class AddReturnDataToSignInTokens < ActiveRecord::Migration[8.0] + def change + add_column :sign_in_tokens, :return_data, :jsonb + end +end diff --git a/db/schema.rb b/db/schema.rb index bba0cfd..4439986 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2025_06_11_071124) do +ActiveRecord::Schema[8.0].define(version: 2025_06_13_163710) do create_schema "pganalyze" # These are extensions that must be enabled in order to support this database @@ -464,6 +464,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_06_11_071124) do t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "continue_param" + t.jsonb "return_data" t.index ["token"], name: "index_sign_in_tokens_on_token" t.index ["user_id"], name: "index_sign_in_tokens_on_user_id" end