From 70c85cb8be7163e0b89a092d2b8a866427c785a6 Mon Sep 17 00:00:00 2001 From: florianuhlig Date: Fri, 3 Oct 2025 01:23:18 +0200 Subject: [PATCH] Registering works fine now --- frontend/app.py | 36 +++++---- frontend/templates/dashboard.html | 119 ++++++++++++++++++++++++++++++ frontend/templates/register.html | 1 + main.py | 7 -- sqlLite/__init__.py | 2 - sqlLite/auth.py | 17 +++++ sqlLite/set.py | 9 +-- standard/getter.py | 12 +++ useful/check.py | 10 --- useful/hash.py | 5 -- 10 files changed, 173 insertions(+), 45 deletions(-) create mode 100644 frontend/templates/dashboard.html create mode 100644 sqlLite/auth.py create mode 100644 standard/getter.py delete mode 100644 useful/check.py delete mode 100644 useful/hash.py diff --git a/frontend/app.py b/frontend/app.py index 1bd7b5e..31a73c2 100644 --- a/frontend/app.py +++ b/frontend/app.py @@ -14,14 +14,14 @@ def home(): @app.route('/register', methods=['GET', 'POST']) def register(): - import sqlLite.get as getter + import standard.getter as st_getter import sqlLite.set as setter - import useful.hash as hasher + if request.method == 'POST': - username = request.form['username'].strip() - email = request.form.get('email').strip() - password = request.form.get('password').strip() - pwd_confirm = request.form.get('confirm_password').strip() + username = request.form['username'] + email = request.form.get('email') + password = request.form.get('password') + pwd_confirm = request.form.get('confirm_password') if not email or not password or not pwd_confirm or not username: flash('Please fill out all fields', 'error') @@ -30,18 +30,22 @@ def register(): if password != pwd_confirm: flash('Passwords do not match', 'error') return redirect(url_for('register')) - # Hash the password - hashed_password = hasher.sha512(password.encode('utf-8')).hexdigest() + try: - # Call your setter function to add user to DB - setter.set_login(username, email, hashed_password) - flash('Registration successful! Please log in.', 'success') - return redirect(url_for('login')) + if st_getter.get_validate_email(email): + setter.set_login(username, email, password) + flash('Registration successful! Please log in.', 'success') + return redirect(url_for('login')) + else: + flash('Invalid email format', 'error') + return redirect(url_for('register')) except Exception as e: flash(f'Error: {str(e)}', 'error') return redirect(url_for('register')) - + # For GET-requests: return render_template('register.html') + + @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': @@ -49,6 +53,7 @@ def login(): enter_password = request.form.get('password') import hashlib import sqlLite.get as getter + import standard.getter as st_getter stored_hash = getter.get_password_by_email(enter_email) # use email here @@ -56,7 +61,7 @@ def login(): flash("User not found!") return redirect(url_for("login")) - hash_entered = hashlib.sha512(enter_password.encode('utf-8')).hexdigest() + hash_entered = st_getter.get_password_hash(enter_password) if hash_entered == stored_hash: return redirect(url_for('dashboard')) @@ -70,4 +75,5 @@ def login(): @app.route('/dashboard') def dashboard(): - return "Welcome to the dashboard! Login successful." + #return "Welcome to the dashboard! Login successful." + return render_template('dashboard.html') diff --git a/frontend/templates/dashboard.html b/frontend/templates/dashboard.html new file mode 100644 index 0000000..5244e39 --- /dev/null +++ b/frontend/templates/dashboard.html @@ -0,0 +1,119 @@ + + + + + + Register + + + + + diff --git a/frontend/templates/register.html b/frontend/templates/register.html index e735073..8563531 100644 --- a/frontend/templates/register.html +++ b/frontend/templates/register.html @@ -72,6 +72,7 @@ box-shadow: 0 2px 5px rgba(0,0,0,0.05); } + input[type="username"]:focus, input[type="email"]:focus, input[type="password"]:focus { border-color: #2575fc; diff --git a/main.py b/main.py index f947c04..430e84f 100644 --- a/main.py +++ b/main.py @@ -5,15 +5,8 @@ from frontend.app import app sqlLite.set_db_name("databases/test.db") import sqlLite.create as create -import sqlLite.set as setter -import sqlLite.get as getter -#import testing as testing -#testing.sqllite_reset() create.create_table_t_user() -setter.set_login("test", "test@test.test", "password") -#setter.set_login("admin", "admin@test.test", "admin") -#getter.get_password_by_email("admin@fuhlig.de") if __name__ == '__main__': app.run(debug=True, host='0.0.0.0', port=8080) diff --git a/sqlLite/__init__.py b/sqlLite/__init__.py index 83dee19..8c2255d 100644 --- a/sqlLite/__init__.py +++ b/sqlLite/__init__.py @@ -1,5 +1,3 @@ -db_name = "databases/test.db" - def set_db_name(name): global db_name db_name = name \ No newline at end of file diff --git a/sqlLite/auth.py b/sqlLite/auth.py new file mode 100644 index 0000000..eb862b5 --- /dev/null +++ b/sqlLite/auth.py @@ -0,0 +1,17 @@ + +def login(name_email, password): + import get as getter + password_stored = getter.get_password_by_email(name_email) + if password_stored is None: + return None + elif password_stored != password: + return None + else: + return True + +def register(username, email, password): + import standard.getter as st_getter + if st_getter.get_validate_email(email): + hashed_password = st_getter.get_password_hash(password) + import sqlLite.set as sq_setter + sq_setter.set_login(username, email,hashed_password) \ No newline at end of file diff --git a/sqlLite/set.py b/sqlLite/set.py index df70439..3ebe9a2 100644 --- a/sqlLite/set.py +++ b/sqlLite/set.py @@ -1,17 +1,14 @@ from hashlib import sha512 import sqlite3 -import useful.check as check -import useful.hash as hash +import standard.getter as st_getter from . import db_name - - def set_login(username, email, password): db_con = sqlite3.connect(db_name) db_cur = db_con.cursor() try: - if check.check_email(email): - db_cur.execute("INSERT INTO T_USERS (USERNAME, EMAIL, PASSWORD) VALUES (?,?,?)", (username ,email , hash.get_password_hash(password))) + if st_getter.get_validate_email(email): + db_cur.execute("INSERT INTO T_USERS (USERNAME, EMAIL, PASSWORD) VALUES (?,?,?)", (username ,email , st_getter.get_password_hash(password))) db_con.commit() else: print("Email entered is not valid") diff --git a/standard/getter.py b/standard/getter.py new file mode 100644 index 0000000..4564e4e --- /dev/null +++ b/standard/getter.py @@ -0,0 +1,12 @@ +def get_password_hash(password): + from hashlib import sha512 + password = password.strip() + return sha512(password.encode('utf-8')).hexdigest() + +def get_validate_email(email): + import re + valid = re.match(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', email) + if valid: + return True + else: + return False \ No newline at end of file diff --git a/useful/check.py b/useful/check.py deleted file mode 100644 index ff57fb2..0000000 --- a/useful/check.py +++ /dev/null @@ -1,10 +0,0 @@ -import re - -def check_email(email): - # Click on Edit and place your email ID to validate - #email = "my.ownsite@our-earth.de" - valid = re.match(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', email) - if valid: - return True - else: - return False \ No newline at end of file diff --git a/useful/hash.py b/useful/hash.py deleted file mode 100644 index 9682ad9..0000000 --- a/useful/hash.py +++ /dev/null @@ -1,5 +0,0 @@ -from hashlib import sha512 - -def get_password_hash(password): - password = password.strip() - return sha512(password.encode('utf-8')).hexdigest() \ No newline at end of file