From dc17553db80dd6070f019720d1cc57a47997d8b7 Mon Sep 17 00:00:00 2001 From: iamBadgers Date: Wed, 29 Apr 2026 20:48:42 -0700 Subject: [PATCH] Add in beginings of auth system --- src/auth.py | 33 +++++++++++++++++++++ src/user_model.py | 24 +++++++++++++++ src/users.py | 75 ----------------------------------------------- 3 files changed, 57 insertions(+), 75 deletions(-) create mode 100644 src/auth.py delete mode 100644 src/users.py diff --git a/src/auth.py b/src/auth.py new file mode 100644 index 0000000..c46734b --- /dev/null +++ b/src/auth.py @@ -0,0 +1,33 @@ +from flask import Blueprint +from user_model import User +from main import db + +auth = Blueprint("auth_api", __name__) + +@auth.route("/login") +def login(self): + return + +@auth.route("/logout") +def logout(self): + return + +@auth.route("/user") +def get_current_user(self): + return + +@auth.route("/user", methods=["POST"]) +def create_user(self): + return + +@auth.route("/user/", methods=["POST"]) +def update_user(self): + return + +@auth.route("/user/", methods=["DELETE"]) +def delete_user(self): + return + +@auth.route("/user/") +def get_user(self): + return diff --git a/src/user_model.py b/src/user_model.py index 99b357f..263856a 100644 --- a/src/user_model.py +++ b/src/user_model.py @@ -1,5 +1,9 @@ +from sqlalchemy import Column, ForeignKey, Integer, Table +from sqlalchemy.orm import relationship from main import db +def create_new_session(user: User) -> Session: + return class User(db.Model): @@ -8,5 +12,25 @@ class User(db.Model): user_id = db.Column(db.Integer, primary_key=True) password_hash = db.Column(db.Text) user_name = db.Column(db.Text, unique=True) + sessions = relationship("Session", back_populates="user") + def set_password(self, newPassword: str): + self.password_hash = "testing" + def test_password(self, password: str) -> bool: + return True + + def to_dict(self): + return {"username": self.user_name} + +class Session(db.Model): + + __tableanme__ = "sessions" + + session_id = db.Column(db.Text, primary_key=True) + parent_id = db.Column(db.Integer, ForeignKey("users.user_id")) + issue_timestamp = db.Column(db.Integer) + user = relationship("User", back_populates="sessions") + + def session_active(self): + return True diff --git a/src/users.py b/src/users.py deleted file mode 100644 index e7c15d1..0000000 --- a/src/users.py +++ /dev/null @@ -1,75 +0,0 @@ -from typeing import List -from flask import Blueprint, current_app -from werkzeug.security import generate_password_hash, check_password_hash - - -class User: - _id: int - _username: str - _hash: str - _updated: bool - _created: bool - _delete: bool - - def __init__( - self, - id, - username, - hash, - created: bool = False, - updated: bool = False, - delete: bool = False, - ): - return - - def check_password(self, password: str): - return - - def commit(self): - return - - @property - def hash(self): - return self._hash - - @hash.setter - def set_hash(self, password: str): - self._updated = False - self._hash = generate_password_hash(password) - - @property - def username(self): - return self.username - - @username.setter - def set_username(self, username): - self._updated = False - self._username = username - - -class UserService: - - def __init__(): - return - - def read_by_username(username: str) -> User: - return - - def read_all() -> List[User]: - return [] - - def check_login(username: str, password: str): - return - - -users = Blueprint("users_api", __name__) - - -@users.route("/login", method=["POST"]) -def login(): - return - - -@users.route("/logout", method=["POST"]) -def logout(): - return