user addition

This commit is contained in:
2025-11-27 18:18:18 -08:00
parent 81fa3c0ee5
commit 2959c39401
4 changed files with 54 additions and 29 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
data
test.py
TODO.md
.venv
__pycache__

View File

@@ -1,10 +1,32 @@
from hashlib import sha256
import bcrypt
def create_user(db, login_info, user_info):
pass
def update_user(db, login_info, user_info):
pass
"""
Creates a new user
Parameters:
db (psycopg2.connection): connection to postgres database
login_info (dict of str:int): username and password info
user_info (dict of str:int): name and dob info
Returns:
bool: success of user creation
str: result message
"""
username, password = login_info["username"], login_info["password"]
password_hash = bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode()
name, dob = user_info["name"], user_info["dob"]
with db:
with db.cursor() as curs:
curs.execute("SELECT * FROM Users WHERE username = %s", (username,))
conflicts = curs.fetchall()
if conflicts:
return False, "Duplicate username"
curs.execute("INSERT INTO Users (username, password_hash, name, dob) VALUES (%s, %s, %s, %s)", (username, password_hash, name, dob))
db.commit()
return True, "Success"
def get_user(db, id):
pass

50
app.py
View File

@@ -1,6 +1,7 @@
import allfence as af
from flask import Flask
import psycopg2 as sql
from textwrap import dedent
DB_NAME, USER, PASSWORD, HOST, PORT = "database", "user", "password", "localhost", "5432"
db_connection = sql.connect(
@@ -10,31 +11,30 @@ db_connection = sql.connect(
host=HOST,
port = PORT
)
db_cursor = db_connection.cursor()
db_cursor.execute("""
CREATE TABLE IF NOT EXISTS Users (
id SERIAL PRIMARY KEY,
name varchar(255),
username varchar(255),
dob varchar(255),
password_hash varchar(255)
);
CREATE TABLE IF NOT EXISTS Events (
id SERIAL PRIMARY KEY,
name varchar(255),
datetime varchar(255),
users varchar(255),
results varchar(255)
);
CREATE TABLE IF NOT EXISTS Tournaments (
id SERIAL PRIMARY KEY,
name varchar(255),
start_date varchar(255),
end_date varchar(255),
events varchar(255)
);
""")
with db_connection.cursor() as cursor:
cursor.execute(dedent("""
CREATE TABLE IF NOT EXISTS Users (
id SERIAL PRIMARY KEY,
name varchar(255),
username varchar(255),
dob varchar(255),
password_hash varchar(255)
);
CREATE TABLE IF NOT EXISTS Events (
id SERIAL PRIMARY KEY,
name varchar(255),
datetime varchar(255),
users varchar(255),
results varchar(255)
);
CREATE TABLE IF NOT EXISTS Tournaments (
id SERIAL PRIMARY KEY,
name varchar(255),
start_date varchar(255),
end_date varchar(255),
events varchar(255)
);
"""))
HOST, PORT = "0.0.0.0", 8000
app = Flask(__name__)

View File

@@ -1,3 +1,4 @@
bcrypt==5.0.0
blinker==1.9.0
click==8.3.1
Flask==3.1.2