user upgrades: add upgrade code system.

Add a system for upgrading accounts using upgrade codes. Users purchase
an upgrade code off-site then redeem it on-site to upgrade their account
to Gold. Upgrade codes are randomly pre-generated and are one time use
only. Codes have enough randomness that guessing a code is infeasible.
This commit is contained in:
evazion
2022-05-25 17:28:39 -05:00
parent 7786fbaca6
commit 173e43b192
22 changed files with 461 additions and 22 deletions

View File

@@ -392,6 +392,14 @@ module Danbooru
true
end
# The URL of the Shopify checkout page where account upgrades are sold.
def shopify_checkout_url
end
# The secret used to verify webhooks from Shopify. Get it from the https://xxx.myshopify.com/admin/settings/notifications page.
def shopify_webhook_secret
end
def stripe_secret_key
end

View File

@@ -248,6 +248,13 @@ Rails.application.routes.draw do
resources :tags
resources :tag_aliases, only: [:show, :index, :destroy]
resources :tag_implications, only: [:show, :index, :destroy]
get "/redeem", to: "upgrade_codes#redeem", as: "redeem_upgrade_codes"
resources :upgrade_codes, only: [:create, :index] do
get :redeem, on: :collection
post :upgrade, on: :collection
end
resources :uploads do
collection do
get :batch, to: redirect(path: "/uploads/new")