Add confirm loop

For pages where
- we want you to be sure that you want to do what you’re about to do
- we want to be sure it’s you trying to do the thing

This adds a page that asks the user to confirm their password.
This commit is contained in:
Chris Hill-Scott
2016-01-07 16:24:43 +00:00
parent 3989d1b576
commit 0b62d1e755
12 changed files with 227 additions and 82 deletions

View File

@@ -1,4 +1,4 @@
from flask import render_template, redirect, request, url_for
from flask import render_template, redirect, request, url_for, abort
from flask_login import login_required
from app.main import main
@@ -25,6 +25,18 @@ def name():
'views/service-settings/name.html',
service=service
)
elif request.method == 'POST':
return redirect(url_for('.confirm_name_change'))
@main.route("/service-settings/name/confirm", methods=['GET', 'POST'])
def confirm_name_change():
if request.method == 'GET':
return render_template(
'views/service-settings/confirm.html',
heading='Rename service',
submit_button_text='Confirm'
)
elif request.method == 'POST':
return redirect(url_for('.service_settings'))
@@ -47,6 +59,19 @@ def status():
'views/service-settings/status.html',
service=service
)
elif request.method == 'POST':
return redirect(url_for('.confirm_status_change'))
@main.route("/service-settings/status/confirm", methods=['GET', 'POST'])
def confirm_status_change():
if request.method == 'GET':
return render_template(
'views/service-settings/confirm.html',
heading='Turn off outgoing messages',
submit_button_text='Confirm',
destructive=True
)
elif request.method == 'POST':
return redirect(url_for('.service_settings'))
@@ -59,4 +84,17 @@ def delete():
service=service
)
elif request.method == 'POST':
return redirect(url_for('.index'))
return redirect(url_for('.confirm_delete'))
@main.route("/service-settings/delete/confirm", methods=['GET', 'POST'])
def confirm_delete():
if request.method == 'GET':
return render_template(
'views/service-settings/confirm.html',
heading='Delete service',
submit_button_text='Confirm',
destructive=True
)
elif request.method == 'POST':
return redirect(url_for('.dashboard'))