forked from 3wordchant/capsul-flask
Merge pull request 'Disable BTCPay in the interface, if BTCPAY_PRIVATE_KEY is un-set' (#3) from optional-btcpay into master
Reviewed-on: 3wordchant/capsul-flask#3
This commit is contained in:
commit
f848eda931
@ -31,7 +31,6 @@ load_dotenv(find_dotenv())
|
|||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
app.config.from_mapping(
|
app.config.from_mapping(
|
||||||
|
|
||||||
BASE_URL=os.environ.get("BASE_URL", default="http://localhost:5000"),
|
BASE_URL=os.environ.get("BASE_URL", default="http://localhost:5000"),
|
||||||
SECRET_KEY=os.environ.get("SECRET_KEY", default="dev"),
|
SECRET_KEY=os.environ.get("SECRET_KEY", default="dev"),
|
||||||
HUB_MODE_ENABLED=os.environ.get("HUB_MODE_ENABLED", default="True").lower() in ['true', '1', 't', 'y', 'yes'],
|
HUB_MODE_ENABLED=os.environ.get("HUB_MODE_ENABLED", default="True").lower() in ['true', '1', 't', 'y', 'yes'],
|
||||||
@ -72,7 +71,7 @@ app.config.from_mapping(
|
|||||||
#STRIPE_WEBHOOK_SECRET=os.environ.get("STRIPE_WEBHOOK_SECRET", default="")
|
#STRIPE_WEBHOOK_SECRET=os.environ.get("STRIPE_WEBHOOK_SECRET", default="")
|
||||||
|
|
||||||
BTCPAY_PRIVATE_KEY=os.environ.get("BTCPAY_PRIVATE_KEY", default="").replace("\\n", "\n"),
|
BTCPAY_PRIVATE_KEY=os.environ.get("BTCPAY_PRIVATE_KEY", default="").replace("\\n", "\n"),
|
||||||
BTCPAY_URL=os.environ.get("BTCPAY_URL", default="https://btcpay.cyberia.club")
|
BTCPAY_URL=os.environ.get("BTCPAY_URL", default="")
|
||||||
)
|
)
|
||||||
|
|
||||||
app.config['HUB_URL'] = os.environ.get("HUB_URL", default=app.config['BASE_URL'])
|
app.config['HUB_URL'] = os.environ.get("HUB_URL", default=app.config['BASE_URL'])
|
||||||
@ -140,10 +139,13 @@ else:
|
|||||||
|
|
||||||
app.config['HTTP_CLIENT'] = MyHTTPClient(timeout_seconds=int(app.config['INTERNAL_HTTP_TIMEOUT_SECONDS']))
|
app.config['HTTP_CLIENT'] = MyHTTPClient(timeout_seconds=int(app.config['INTERNAL_HTTP_TIMEOUT_SECONDS']))
|
||||||
|
|
||||||
try:
|
app.config['BTCPAY_ENABLED'] = False
|
||||||
app.config['BTCPAY_CLIENT'] = btcpay.Client(api_uri=app.config['BTCPAY_URL'], pem=app.config['BTCPAY_PRIVATE_KEY'])
|
if app.config['BTCPAY_URL'] is not "":
|
||||||
except:
|
try:
|
||||||
app.logger.warning("unable to create btcpay client. Capsul will work fine except cryptocurrency payments will not work. The error was: " + my_exec_info_message(sys.exc_info()))
|
app.config['BTCPAY_CLIENT'] = btcpay.Client(api_uri=app.config['BTCPAY_URL'], pem=app.config['BTCPAY_PRIVATE_KEY'])
|
||||||
|
app.config['BTCPAY_ENABLED'] = True
|
||||||
|
except:
|
||||||
|
app.logger.warning("unable to create btcpay client. Capsul will work fine except cryptocurrency payments will not work. The error was: " + my_exec_info_message(sys.exc_info()))
|
||||||
|
|
||||||
# only start the scheduler and attempt to migrate the database if we are running the app.
|
# only start the scheduler and attempt to migrate the database if we are running the app.
|
||||||
# otherwise we are running a CLI command.
|
# otherwise we are running a CLI command.
|
||||||
@ -219,7 +221,6 @@ def override_url_for():
|
|||||||
return dict(url_for=url_for_with_cache_bust)
|
return dict(url_for=url_for_with_cache_bust)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def url_for_with_cache_bust(endpoint, **values):
|
def url_for_with_cache_bust(endpoint, **values):
|
||||||
"""
|
"""
|
||||||
Add a query parameter based on the hash of the file, this acts as a cache bust
|
Add a query parameter based on the hash of the file, this acts as a cache bust
|
||||||
@ -244,7 +245,3 @@ def url_for_with_cache_bust(endpoint, **values):
|
|||||||
values['q'] = current_app.config['STATIC_FILE_HASH_CACHE'][filename]
|
values['q'] = current_app.config['STATIC_FILE_HASH_CACHE'][filename]
|
||||||
|
|
||||||
return url_for(endpoint, **values)
|
return url_for(endpoint, **values)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -423,6 +423,7 @@ def account_balance():
|
|||||||
has_vms=len(vms_billed)>0,
|
has_vms=len(vms_billed)>0,
|
||||||
vms_billed=vms_billed,
|
vms_billed=vms_billed,
|
||||||
warning_text=warning_text,
|
warning_text=warning_text,
|
||||||
|
btcpay_enabled=current_app.config["BTCPAY_ENABLED"],
|
||||||
payments=list(map(
|
payments=list(map(
|
||||||
lambda x: dict(
|
lambda x: dict(
|
||||||
dollars=x["dollars"],
|
dollars=x["dollars"],
|
||||||
|
@ -48,6 +48,10 @@ def validate_dollars():
|
|||||||
def btcpay_payment():
|
def btcpay_payment():
|
||||||
errors = list()
|
errors = list()
|
||||||
|
|
||||||
|
if not current_app.config['BTCPAY_ENABLED']:
|
||||||
|
flash("BTCPay is not enabled on this server")
|
||||||
|
return redirect(url_for("console.account_balance"))
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
result = validate_dollars()
|
result = validate_dollars()
|
||||||
errors = result[0]
|
errors = result[0]
|
||||||
@ -289,4 +293,4 @@ def success():
|
|||||||
# except stripe.error.SignatureVerificationError:
|
# except stripe.error.SignatureVerificationError:
|
||||||
# print("/payment/stripe/webhook returned 400: invalid signature")
|
# print("/payment/stripe/webhook returned 400: invalid signature")
|
||||||
# abort(400, "invalid signature")
|
# abort(400, "invalid signature")
|
||||||
|
|
||||||
|
@ -46,7 +46,9 @@
|
|||||||
<a href="/payment/stripe">Add funds with Credit/Debit (stripe)</a>
|
<a href="/payment/stripe">Add funds with Credit/Debit (stripe)</a>
|
||||||
<ul><li>notice: stripe will load nonfree javascript </li></ul>
|
<ul><li>notice: stripe will load nonfree javascript </li></ul>
|
||||||
</li>
|
</li>
|
||||||
|
{% if btcpay_enabled %}
|
||||||
<li><a href="/payment/btcpay">Add funds with Bitcoin/Litecoin/Monero (btcpay)</a></li>
|
<li><a href="/payment/btcpay">Add funds with Bitcoin/Litecoin/Monero (btcpay)</a></li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<li>Cash: email <a href="mailto:treasurer@cyberia.club">treasurer@cyberia.club</a></li>
|
<li>Cash: email <a href="mailto:treasurer@cyberia.club">treasurer@cyberia.club</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
Loading…
Reference in New Issue
Block a user