mirror of
https://github.com/System-End/hackatime.git
synced 2026-04-19 19:55:16 +00:00
add admin key revocation endpoint (#747)
* add admin key revocation endpoint * include key name
This commit is contained in:
parent
f28592b88a
commit
a1df7eddd1
2 changed files with 35 additions and 0 deletions
34
app/controllers/api/internal/revocations_controller.rb
Normal file
34
app/controllers/api/internal/revocations_controller.rb
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
module Api
|
||||
module Internal
|
||||
class RevocationsController < ApplicationController
|
||||
def create
|
||||
token = params[:token]
|
||||
|
||||
return head 400 unless token.present?
|
||||
|
||||
admin_api_key = AdminApiKey.active.find_by(token:)
|
||||
|
||||
return render json: { success: false } unless admin_api_key.present?
|
||||
|
||||
admin_api_key.revoke!
|
||||
|
||||
user = admin_api_key.user
|
||||
|
||||
render json: {
|
||||
success: true,
|
||||
owner_email: user.email_addresses.first&.email,
|
||||
key_name: admin_api_key.name
|
||||
}.compact_blank
|
||||
end
|
||||
|
||||
private def authenticate!
|
||||
res = authenticate_with_http_token do |token, _|
|
||||
ActiveSupport::SecurityUtils.secure_compare(token, ENV["HKA_REVOCATION_KEY"])
|
||||
end
|
||||
unless res
|
||||
redirect_to "https://www.youtube.com/watch?v=dQw4w9WgXcQ", allow_other_host: true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -217,6 +217,7 @@ Rails.application.routes.draw do
|
|||
end
|
||||
|
||||
namespace :internal do
|
||||
post "revoke", to: "revocations#create"
|
||||
post "/can_i_have_a_magic_link_for/:id", to: "magic_links#create"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue