hackatime/app/controllers/settings/access_controller.rb
Mahad Kalam 1f695850e5
Bring back Mailkick (#1021)
* Sources say Charlie Kick is stable. Please god

* Some tests + guards + unsub URL fix

* Fix lockfile!

* bin/rubocop -A

* if this does not work I am going to kms

* phew
2026-03-01 14:26:54 +00:00

44 lines
1.2 KiB
Ruby

class Settings::AccessController < Settings::BaseController
def show
render_access
end
def update
if @user.update(access_params)
PosthogService.capture(@user, "settings_updated", { fields: access_params.keys })
redirect_to my_settings_access_path, notice: "Settings updated successfully"
else
flash.now[:error] = @user.errors.full_messages.to_sentence.presence || "Failed to update settings"
render_access(status: :unprocessable_entity)
end
end
def rotate_api_key
@user.api_keys.transaction do
@user.api_keys.destroy_all
new_api_key = @user.api_keys.create!(name: "Hackatime key")
PosthogService.capture(@user, "api_key_rotated")
render json: { token: new_api_key.token }, status: :ok
end
rescue => e
Sentry.capture_exception(e)
Rails.logger.error("error rotate #{e.class.name} #{e.message}")
render json: { error: "cant rotate" }, status: :unprocessable_entity
end
private
def render_access(status: :ok)
render_settings_page(
active_section: "access",
settings_update_path: my_settings_access_path,
status: status
)
end
def access_params
params.require(:user).permit(:hackatime_extension_text_type)
end
end