From c2a8199a84dc8cc3e11029f6a4e51382cc6aaf79 Mon Sep 17 00:00:00 2001 From: irrlicht Date: Tue, 23 Dec 2025 01:15:15 +0100 Subject: [PATCH] Moved user creation to user_controller.new() --- auth.py | 20 +++++---------- user_controller.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 user_controller.py diff --git a/auth.py b/auth.py index 0e1df90..228b921 100644 --- a/auth.py +++ b/auth.py @@ -1,5 +1,6 @@ from flask import render_template, request, make_response, redirect import database, re, bcrypt, secrets, time +import user_controller from app import app @@ -169,8 +170,8 @@ def newuser(): if len(username) < 3: success = False responses.append(f"Der Nutzername {username} ist zu kurz.") - usernamequery = database.fetch("SELECT id FROM user WHERE username=?", [username]) - if len(usernamequery) != 0: + + if user_controller.id_from_username(username) != 0: success = False responses.append(f"Der Nutzername {username} wird bereits verwendet.") @@ -178,27 +179,18 @@ def newuser(): pass2 = str(request.form['pass2']) if pass1 != pass2: success = False - responses.append(f"Passwort und Passwortbestätigung sind ungleich.") + responses.append("Passwort und Passwortbestätigung sind ungleich.") if len(pass1) < 10: success = False - responses.append(f"Das Passwort ist kürzer als 10 Zeichen.") + responses.append("Das Passwort ist kürzer als 10 Zeichen.") if not success: return render_template("auth/register.html", responses=responses, username=username) - uid = secrets.randbelow(99999999) - created_at = int(time.time()) - # emailcode = secrets.randbelow(999999) - passsalt = bcrypt.gensalt() - passhash = bcrypt.hashpw(pass1.encode("utf8"), passsalt) - - database.execute("""INSERT INTO user - (uid, created_at, username, password) VALUES - (?, ?, ?, ?)""", - (uid, created_at, username, passhash)) + user_controller.new(username, pass1) return render_template("auth/registersuccess.html", username=username) diff --git a/user_controller.py b/user_controller.py new file mode 100644 index 0000000..82db12b --- /dev/null +++ b/user_controller.py @@ -0,0 +1,63 @@ +import database, re, bcrypt, secrets, time + +def new(username, password): + uid = secrets.randbelow(99999999) + created_at = int(time.time()) + + passsalt = bcrypt.gensalt() + passhash = bcrypt.hashpw(password.encode("utf8"), passsalt) + + database.execute("""INSERT INTO user + (uid, created_at, username, password) VALUES + (?, ?, ?, ?)""", + (uid, created_at, username, passhash)) + + return + +def from_uid(): + pass + +def id_from_username(username): + query = database.fetch("SELECT id FROM user WHERE username=?", [username], False) + if query: + return query[0] + else: + return 0 + +def id_from_session(session): + sessioninfo = database.fetch("""SELECT uid, expires + FROM session + WHERE value=?;""", + [sessionid], False) + + if not sessioninfo: + return 0 + + # if int(sessioninfo[2] > int(time.time())): + # return 0 # session expired + + + pass + +def exists(): + # count from database + pass + +def authenticate(password): + # verify password with stored hash + pass + +def get_info() -> dict: + pass + +def set_username(newname): + # update username + pass + +def set_password(newpass): + # update password + pass + +def delete(): + # delete database entry + pass