From 0db115eac8f3043524a5a67cc4d58bc106b366be Mon Sep 17 00:00:00 2001 From: kmpm Date: Wed, 11 Nov 2020 14:06:44 +0100 Subject: [PATCH] feat: make client editable --- website/routes.py | 31 ++++++++++++++++++ website/templates/edit_client.html | 52 ++++++++++++++++++++++++++++++ website/templates/home.html | 5 +-- 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 website/templates/edit_client.html diff --git a/website/routes.py b/website/routes.py index 1bd9e29..25ce51e 100644 --- a/website/routes.py +++ b/website/routes.py @@ -73,6 +73,37 @@ def create_client(): return redirect('/') +@bp.route('/edit_client/', methods=('GET', 'POST')) +def edit_client(client_id=None): + user = current_user() + if not user: + return redirect('/') + client = OAuth2Client.query.filter_by(client_id=client_id).first() + + if request.method == 'GET': + return render_template('edit_client.html', client_id=client_id, client=client) + + + form = request.form + client_metadata = { + "client_name": form["client_name"], + "client_uri": form["client_uri"], + "grant_types": split_by_crlf(form["grant_type"]), + "redirect_uris": split_by_crlf(form["redirect_uri"]), + "response_types": split_by_crlf(form["response_type"]), + "scope": form["scope"], + "token_endpoint_auth_method": form["token_endpoint_auth_method"] + } + client.set_client_metadata(client_metadata) + + if form['token_endpoint_auth_method'] == 'none': + client.client_secret = '' + elif client.client_secret == '': + client.client_secret = gen_salt(48) + db.session.commit() + return redirect('/') + + @bp.route('/oauth/authorize', methods=['GET', 'POST']) def authorize(): user = current_user() diff --git a/website/templates/edit_client.html b/website/templates/edit_client.html new file mode 100644 index 0000000..73f229a --- /dev/null +++ b/website/templates/edit_client.html @@ -0,0 +1,52 @@ + + + Home +

Edit Client

+
+ + + + + + + + + + +
+ \ No newline at end of file diff --git a/website/templates/home.html b/website/templates/home.html index 0b2580d..dca9682 100644 --- a/website/templates/home.html +++ b/website/templates/home.html @@ -4,9 +4,10 @@ {% for client in clients %}
-{{ client.client_info|tojson }}
-{{ client.client_metadata|tojson }}
+{{ client.client_info|tojson(indent=4) }}
+{{ client.client_metadata|tojson(indent=4) }}
 
+[edit]
{% endfor %}