* Add ApiSecret model scaffold * Add relationships between ApiSecret, User, Organization * Add placeholder template to account tab * Add description column to ApiSecrets * Add very basic access token generation * Add basic access token deletion * Show access token on success flash * Add placeholder message when user has no secrets * Use cta style on token generation button * Add presence validation for ApiSecret description * Add ApiSecrets factory * Add pundit policy for ApiSecret * Nest form field within api_secret hash to allow rails strong params * Use pundit to authorize ApiSecretController actions * Add error message flash for ApiSecretsController actions * Add specs for ApiSecretsController * Add length validation to api secret description * Flash model error instead of generic message on save failure * Truncate ApiSecret factory objects descriptions to prevent validation error * Remove length restriction on ApiSecret.description * Use darker font color for token creation date * Consolidate ApiSecret migrations
32 lines
972 B
Ruby
32 lines
972 B
Ruby
class ApiSecretsController < ApplicationController
|
||
before_action :set_api_secret, only: :destroy
|
||
after_action :verify_authorized
|
||
|
||
def create
|
||
authorize ApiSecret
|
||
@secret = ApiSecret.new(permitted_attributes(ApiSecret))
|
||
@secret.user_id = current_user.id
|
||
if @secret.save
|
||
flash[:notice] = "Your access token has been generated: #{@secret.secret}. Be sure to copy it to somewhere safe now. You won’t be able to see it again!"
|
||
else
|
||
flash[:error] = @secret.errors.full_messages.to_sentence
|
||
end
|
||
redirect_back(fallback_location: root_path)
|
||
end
|
||
|
||
def destroy
|
||
authorize @secret
|
||
if @secret.destroy
|
||
flash[:notice] = "Your access token has been revoked."
|
||
else
|
||
flash[:error] = "An error occurred. Please try again or send an email to: yo@dev.to"
|
||
end
|
||
redirect_back(fallback_location: root_path)
|
||
end
|
||
|
||
private
|
||
|
||
def set_api_secret
|
||
@secret = ApiSecret.find_by_id(params[:id]) || not_found
|
||
end
|
||
end
|