From c1fce5bf4a2f782a1bb6f00fcf45196ede9dcf1c Mon Sep 17 00:00:00 2001 From: cami Date: Thu, 22 Jul 2021 03:24:31 +0200 Subject: [PATCH 01/32] Change api for random password --- backend/src/app.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/app.py b/backend/src/app.py index 8f49861..7f66284 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -141,10 +141,10 @@ def protected(): return {'message': f'protected endpoint (allowed user {flask_praetorian.current_user().username})'} -@app.route('/api/protected/rcv_pw', methods=['GET']) +@app.route('/api/rcv_pw', methods=['GET']) def get_password(): pw = get_random_password() - ret = {'password': pw} + ret = {'random_password': pw} return ret, 200 From a6346d749652420d7c9b76b4977830bc0652334d Mon Sep 17 00:00:00 2001 From: cami Date: Thu, 22 Jul 2021 04:44:31 +0200 Subject: [PATCH 02/32] Password validation works but password is not shown in generated password thing --- frontend/src/components/GeneratedPassword.js | 13 +----- frontend/src/components/pages/Study.js | 42 ++++++++++++++++---- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/frontend/src/components/GeneratedPassword.js b/frontend/src/components/GeneratedPassword.js index c963b5c..af03882 100644 --- a/frontend/src/components/GeneratedPassword.js +++ b/frontend/src/components/GeneratedPassword.js @@ -1,23 +1,14 @@ -import React, { useEffect, useState } from "react"; +import React from "react"; import "../App.css"; export default function GeneratedPassword() { - const [genPassword, setGenPassword] = useState(""); + const genPassword = "PASSWORT_MANUELL" const handleOnCopyEvent = (e) => { e.preventDefault(); return false; }; - useEffect(() => { - fetch("/api/protected/rcv_pw", { - method: "get", - }).then((response) => { - response.json().then((resp) => { - setGenPassword(resp.password); - }); - }); - }, []); return ( <>

diff --git a/frontend/src/components/pages/Study.js b/frontend/src/components/pages/Study.js index 7e849d1..094479f 100644 --- a/frontend/src/components/pages/Study.js +++ b/frontend/src/components/pages/Study.js @@ -70,36 +70,64 @@ export default function Study() { const handleOnPasteEvent = (e) => { e.preventDefault(); + console.log("paste not allowed"); return false; }; const checkIfUsernameIsCorrect = () => { - console.log("serverUsername", serverUsername); - console.log("username", username); if (serverUsername === username) { - console.log("Passt soweit"); return true; } else { - console.log("Passt gar nicht"); return false; } }; + const _genPassword = useRef(null); + + const receiveRandomPassword = () => { + fetch("/api/rcv_pw", { + method: "get", + }).then((response) => { + response.json().then((resp) => { + _genPassword.current = resp.random_password; + console.log(_genPassword.current) + }); + }); + }; + + const checkIfPasswordIsCorrect = () => { + if (_genPassword.current === password) { + return true; + } else { + return false; + } + }; const checkIfValuesAreCorrect = () => { checkIfUsernameIsCorrect(); + checkIfPasswordIsCorrect(); + console.log(checkIfPasswordIsCorrect()); + if (checkIfPasswordIsCorrect() && checkIfUsernameIsCorrect) { + return true; + } else { + alert("Passt nicht") + return false; + } }; const handleClickAtStepStart = () => { setIsStepStart(false); setIsStepNormal(true); handleLoggerOn(); + receiveRandomPassword(); }; const handleClickAtStepNormal = () => { - checkIfValuesAreCorrect(); - setIsStepNormal(false); - setIsStepPhone(true); + if (checkIfValuesAreCorrect()){ + receiveRandomPassword(); + setIsStepNormal(false); + setIsStepPhone(true); + } }; const handleClickAtStepPhone = () => { From 58bd327377e123a8564eafe787405b52c3aacbca Mon Sep 17 00:00:00 2001 From: cami Date: Thu, 22 Jul 2021 05:20:37 +0200 Subject: [PATCH 03/32] Update some change password things.. --- frontend/src/components/BehaviorNormal.js | 7 ++++--- frontend/src/components/GeneratedPassword.js | 5 +++-- frontend/src/components/pages/Study.js | 15 +++++++++++---- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/BehaviorNormal.js b/frontend/src/components/BehaviorNormal.js index 9f64ef9..c427a02 100644 --- a/frontend/src/components/BehaviorNormal.js +++ b/frontend/src/components/BehaviorNormal.js @@ -1,8 +1,8 @@ import React from "react"; import "../App.css"; -import GeneratedPassword from "./GeneratedPassword" +import GeneratedPassword from "./GeneratedPassword"; -export default function BehaviorNormal() { +export default function BehaviorNormal(props) { return ( <>

@@ -10,7 +10,8 @@ export default function BehaviorNormal() { Passwort eingeben. Verhalten Sie sich einfach so, als ob Sie sich normalerweise anmelden.

- + {console.log("props", props)} + ); } diff --git a/frontend/src/components/GeneratedPassword.js b/frontend/src/components/GeneratedPassword.js index af03882..722fc2a 100644 --- a/frontend/src/components/GeneratedPassword.js +++ b/frontend/src/components/GeneratedPassword.js @@ -1,7 +1,7 @@ import React from "react"; import "../App.css"; -export default function GeneratedPassword() { +export default function GeneratedPassword(props) { const genPassword = "PASSWORT_MANUELL" const handleOnCopyEvent = (e) => { @@ -13,7 +13,8 @@ export default function GeneratedPassword() { <>

Das Passwort für diese Situation lautet:{" "} - {genPassword} + {console.log("component genpw, genpassword", props.genPassword)} + {props.genPassword}

); diff --git a/frontend/src/components/pages/Study.js b/frontend/src/components/pages/Study.js index 094479f..e369065 100644 --- a/frontend/src/components/pages/Study.js +++ b/frontend/src/components/pages/Study.js @@ -83,6 +83,12 @@ export default function Study() { }; const _genPassword = useRef(null); + let genPassword = ""; + + const setGenPassword = (tmp) => { + genPassword = tmp; + console.log("setGenPassword", genPassword, tmp); + }; const receiveRandomPassword = () => { fetch("/api/rcv_pw", { @@ -90,7 +96,8 @@ export default function Study() { }).then((response) => { response.json().then((resp) => { _genPassword.current = resp.random_password; - console.log(_genPassword.current) + console.log(_genPassword.current); + setGenPassword(_genPassword.current); }); }); }; @@ -110,7 +117,7 @@ export default function Study() { if (checkIfPasswordIsCorrect() && checkIfUsernameIsCorrect) { return true; } else { - alert("Passt nicht") + alert("Passt nicht"); return false; } }; @@ -123,7 +130,7 @@ export default function Study() { }; const handleClickAtStepNormal = () => { - if (checkIfValuesAreCorrect()){ + if (checkIfValuesAreCorrect()) { receiveRandomPassword(); setIsStepNormal(false); setIsStepPhone(true); @@ -158,7 +165,7 @@ export default function Study() { const study_normal = ( <> - +
Date: Thu, 22 Jul 2021 07:29:54 +0200 Subject: [PATCH 04/32] Added content --- frontend/src/App.css | 4 +-- frontend/src/components/pages/Manual.js | 37 +++++++++++++++++++++++++ frontend/src/components/pages/Study.js | 2 +- frontend/src/components/pages/Ueber.js | 4 +-- 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/frontend/src/App.css b/frontend/src/App.css index c013d97..6bdd62c 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -51,12 +51,12 @@ a:hover:not(.navbar-logo) { } h1 { - font-size: 5em; + font-size: 4.5em; margin: 0.7em auto; } .sitePage h2 { - font-size: 3.75em; + font-size: 3.7em; margin: 0.7em auto; } diff --git a/frontend/src/components/pages/Manual.js b/frontend/src/components/pages/Manual.js index 46ae5ef..3cb29b0 100644 --- a/frontend/src/components/pages/Manual.js +++ b/frontend/src/components/pages/Manual.js @@ -1,4 +1,5 @@ import React from "react"; +import { Link } from "react-router-dom"; import "../../App.css"; import Footer from "../../Footer"; @@ -7,6 +8,42 @@ export default function Manual() { <>

Anleitung / Bedienungshinweise

+

+ Vielen Dank für Ihr Interesse an meiner Bachelorthesis. Falls Sie noch + grundlegende Informationen benötigen, können Sie diese{" "} + hier genauer anschauen. Hier geht es darum, + dass ich Ihnen eine kurze Anleitung zur Verfügung stelle und erkäre + wie das ganze funktioniert. +

+

Neu hier

+

+ Bei Besuchern, die das erste Mal hier sind, geht es um zwei Dinge. + Erstens müssen sich diese registrieren und zweitens sollte eine + Umfrage durchgeführt werden. Diese Umfrage dient dazu, dass ich eine + grobe Übersicht habe, welche Personengruppen teilgenommen haben. Für + die Registrierung klicken Sie oben rechts einfach auf registieren. Sie + müssen dann einen Nutzernamen und ein Passwort eingeben. Schauen Sie + darauf, dass Sie sich den Benutzernamen und das Passwort merken + können. Es gibt keine Möglichkeit, das Passwort oder den Benutzernamen + zurückzusetzen. Nach der Registrierung landen Sie auf einer + Umfrageseite. Füllen Sie die Fragen wahrheitsgemäss aus und klicken + Sie danach auf "Umfrage abschicken". Nachdem die Umfrage durchgeführt + wurde, können Sie an der Studie teilnehmen, indem Sie auf den Button "Studie starten" klicken. Folgen Sie danach den Anweisungen gemäss der Studie. +

+

War schon einmal hier

+

+ Wenn Sie schon einmal hier waren, gibt es zwei mögliche Zustände: +

    +
  • Sie sind noch eingeloggt
  • +
  • Sie sind nicht mehr eingeloggt
  • +
+

+

+ Sofern Sie noch nicht eingeloggt sind, können Sie sich anmelden mit ihrem gewählten Benutzernamen und dem Passwort. Sie landen dann direkt auf der Seite, welche ich für meine Studie benötige. Führen Sie dort die Studie die Studie wie gewohnt durch und beenden Sie diese am Schluss der Studie mit dem Button "Studie beenden". +

+

+ Wenn Sie bereits eingeloggt sind, dann landen Sie auf der Startseite. Sie finden in der Mitte einen Button mit der Überschrift "Zur Studie". Klicken Sie bitte auf diesen Button und führen Sie dann die Studie durch. +