From a032ca946e54e6ded56864fbc341cdcf207fd389 Mon Sep 17 00:00:00 2001 From: cami Date: Mon, 28 Jun 2021 03:46:27 +0200 Subject: [PATCH 1/9] Starting to add feedback in the registration (fixes #78) --- backend/src/app.py | 30 +++++++++++++++-------- frontend/src/components/pages/Register.js | 9 ++++++- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/backend/src/app.py b/backend/src/app.py index a5fe15a..75625f4 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -144,16 +144,26 @@ def register(): req = flask.request.get_json(force=True) username = req.get('username', None) password = req.get('password', None) - new_user = User( - username=username, - password=guard.hash_password(password) - ) - db.session.add(new_user) - db.session.commit() - ret = {'message': 'Account erstellt für den Account {}'.format( - new_user.username - )} - return ret, 200 + + get_list_by_username = User.query.filter_by(username=username).first() + print(get_list_by_username) + if get_list_by_username is None: + new_user = User( + username=username, + password=guard.hash_password(password) + ) + db.session.add(new_user) + db.session.commit() + ret = {'message': 'Account erstellt für den Account {}'.format( + new_user.username + )} + return ret, 200 + else: + ret = {'message': 'Benutzername {} existiert bereits. Bitte wähle einen anderen '.format( + username + )} + return ret, 409 + @app.route('/umfrage', methods=['POST']) diff --git a/frontend/src/components/pages/Register.js b/frontend/src/components/pages/Register.js index 3145a26..ee7f404 100644 --- a/frontend/src/components/pages/Register.js +++ b/frontend/src/components/pages/Register.js @@ -9,16 +9,23 @@ export default function Login() { const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); + const [message, setMessage] = useState(""); + const onSubmitClick = (e) => { e.preventDefault(); let opts = { username: username, password: password, }; - console.log(opts); fetch("/api/register", { method: "post", body: JSON.stringify(opts), + }).then((response) => { + if (response.status === 409) { + setMessage(response.message) + console.log(message) + console.log(response) + } }); }; From 44e6293e43e4bb29c985bf03efed400cc6ec7bed Mon Sep 17 00:00:00 2001 From: cami Date: Mon, 28 Jun 2021 04:16:46 +0200 Subject: [PATCH 2/9] Added some debug things to get feedback on the frontend after register --- frontend/src/components/pages/Register.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/pages/Register.js b/frontend/src/components/pages/Register.js index ee7f404..983e5a6 100644 --- a/frontend/src/components/pages/Register.js +++ b/frontend/src/components/pages/Register.js @@ -22,9 +22,14 @@ export default function Login() { body: JSON.stringify(opts), }).then((response) => { if (response.status === 409) { - setMessage(response.message) - console.log(message) - console.log(response) + console.log(response); + console.log( + "Benutzername wird bereits verwendet. Wähle einen Anderen (source: console.log)" + ); + let response_json = response.json(); + console.log(response_json); + let response_message = response_json.message; + console.log(response_message); } }); }; From d7d22cb875aacc8391207a0404afed41b74b220c Mon Sep 17 00:00:00 2001 From: cami Date: Mon, 28 Jun 2021 04:31:52 +0200 Subject: [PATCH 3/9] Formatting things in app.py --- backend/src/app.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/app.py b/backend/src/app.py index 3728361..20dfdbe 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -159,7 +159,6 @@ def register(): return ret, 409 - @app.route('/umfrage', methods=['POST']) @flask_praetorian.auth_required def survey(): From ea7be2283e85a8b83c4c22c970e9511e04656838 Mon Sep 17 00:00:00 2001 From: cami Date: Wed, 30 Jun 2021 00:03:34 +0200 Subject: [PATCH 4/9] Return error message if username is already taken during register This will return an error message if the username is already registered. The user should choose another name --- frontend/src/components/Input.css | 2 +- frontend/src/components/pages/Register.js | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/Input.css b/frontend/src/components/Input.css index 63f9233..4f4109e 100644 --- a/frontend/src/components/Input.css +++ b/frontend/src/components/Input.css @@ -38,4 +38,4 @@ form { .input-field label { font-size: 1.5em; -} \ No newline at end of file +} diff --git a/frontend/src/components/pages/Register.js b/frontend/src/components/pages/Register.js index 983e5a6..3129939 100644 --- a/frontend/src/components/pages/Register.js +++ b/frontend/src/components/pages/Register.js @@ -4,6 +4,7 @@ import "../../App.css"; import Footer from "../../Footer"; import InputField from "../InputField"; import SubmitField from "../SubmitField"; +import "../Input.css" export default function Login() { const [username, setUsername] = useState(""); @@ -21,15 +22,17 @@ export default function Login() { method: "post", body: JSON.stringify(opts), }).then((response) => { + console.log(response) if (response.status === 409) { - console.log(response); - console.log( - "Benutzername wird bereits verwendet. Wähle einen Anderen (source: console.log)" - ); - let response_json = response.json(); - console.log(response_json); - let response_message = response_json.message; - console.log(response_message); + /* + then is needed twice to get rid of the javascript Promise thing + */ + response.json().then((resp2) => { + setMessage(resp2.message) + }); + } + else if (response.status === 200) { + //TODO redirect to login #77 or #74 } }); }; @@ -53,6 +56,7 @@ export default function Login() { onChange={handleUsernameChange} InputName="username" /> +

{message}

Date: Wed, 30 Jun 2021 00:41:58 +0200 Subject: [PATCH 5/9] Feedback color when registering --- frontend/src/App.css | 5 +++++ frontend/src/components/SubmitField.js | 1 - frontend/src/components/pages/Register.js | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/App.css b/frontend/src/App.css index 49af386..d4d58cd 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -11,6 +11,7 @@ --secondary: rgb(218, 218, 218); --third: rgb(171, 183, 183); --forth: rgb(255, 255, 255); + --error: rgb(221, 140, 18); } .home, @@ -54,3 +55,7 @@ h1 { max-width: 60%; margin-bottom: 4vh; } + +.errorMessage { + color: var(--error); +} diff --git a/frontend/src/components/SubmitField.js b/frontend/src/components/SubmitField.js index 42619ea..a6303a5 100644 --- a/frontend/src/components/SubmitField.js +++ b/frontend/src/components/SubmitField.js @@ -1,6 +1,5 @@ import React from "react"; import "./Input.css"; -import "./Button.css"; function SubmitField(props) { const InputValue = props.LabelName; diff --git a/frontend/src/components/pages/Register.js b/frontend/src/components/pages/Register.js index 3129939..21d7619 100644 --- a/frontend/src/components/pages/Register.js +++ b/frontend/src/components/pages/Register.js @@ -56,7 +56,7 @@ export default function Login() { onChange={handleUsernameChange} InputName="username" /> -

{message}

+

{message}

Date: Wed, 30 Jun 2021 00:58:18 +0200 Subject: [PATCH 6/9] Removed some logging in the backend when registering --- backend/src/app.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/app.py b/backend/src/app.py index 20dfdbe..c4b6d57 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -140,7 +140,6 @@ def register(): password = req.get('password', None) get_list_by_username = User.query.filter_by(username=username).first() - print(get_list_by_username) if get_list_by_username is None: new_user = User( username=username, From f79959d5311cee0ce804ae2461b4fef2d545fce8 Mon Sep 17 00:00:00 2001 From: cami Date: Wed, 30 Jun 2021 00:58:44 +0200 Subject: [PATCH 7/9] Reformatted register so it's the same as everywhere --- frontend/src/components/pages/Register.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/pages/Register.js b/frontend/src/components/pages/Register.js index 21d7619..2f506db 100644 --- a/frontend/src/components/pages/Register.js +++ b/frontend/src/components/pages/Register.js @@ -4,7 +4,7 @@ import "../../App.css"; import Footer from "../../Footer"; import InputField from "../InputField"; import SubmitField from "../SubmitField"; -import "../Input.css" +import "../Input.css"; export default function Login() { const [username, setUsername] = useState(""); @@ -22,16 +22,15 @@ export default function Login() { method: "post", body: JSON.stringify(opts), }).then((response) => { - console.log(response) + console.log(response); if (response.status === 409) { /* then is needed twice to get rid of the javascript Promise thing */ response.json().then((resp2) => { - setMessage(resp2.message) + setMessage(resp2.message); }); - } - else if (response.status === 200) { + } else if (response.status === 200) { //TODO redirect to login #77 or #74 } }); From f2bd1b882e752bc11a2279b9faa488c097c8a850 Mon Sep 17 00:00:00 2001 From: cami Date: Wed, 30 Jun 2021 01:00:33 +0200 Subject: [PATCH 8/9] Rename button at registering (close #83) The button at the registering page was wrong. should be correct now --- frontend/src/components/pages/Register.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/pages/Register.js b/frontend/src/components/pages/Register.js index 2f506db..e8c4195 100644 --- a/frontend/src/components/pages/Register.js +++ b/frontend/src/components/pages/Register.js @@ -63,7 +63,7 @@ export default function Login() { InputName="password" />
- +