user creation

This commit is contained in:
iamBadgers
2026-04-29 22:49:58 -07:00
parent dc17553db8
commit 79f8dacd52
4 changed files with 38 additions and 15 deletions

View File

@@ -1,33 +1,52 @@
from flask import Blueprint
from flask import Blueprint, request, jsonify
from user_model import User
from main import db
from flask_login import login_user, logout_user
from random import randint
auth = Blueprint("auth_api", __name__)
@auth.route("/login")
def login(self):
return
@auth.route("/login", methods=["POST"])
def login():
username = request.get_json()["username"]
password = request.get_json()["password"]
user = User.query.filter_by(user_name=username).first()
if user and user.test_password(password):
login_user(user)
return None, 200
return None, 403
@auth.route("/logout")
def logout(self):
def logout():
return
@auth.route("/user")
def get_current_user(self):
def get_current_user():
return
@auth.route("/user", methods=["POST"])
def create_user(self):
return
def create_user():
username = request.get_json()["username"]
password = request.get_json()["password"]
user = User(id=randint(0, 999999), user_name=username)
user.set_password(password)
db.session.add(user)
db.session.commit()
return jsonify(user.to_dict())
@auth.route("/user/<user_id>", methods=["POST"])
def update_user(self):
def update_user():
return
@auth.route("/user/<user_id>", methods=["DELETE"])
def delete_user(self):
def delete_user():
return
@auth.route("/user/<user_id>")
def get_user(self):
def get_user():
return

View File

@@ -20,8 +20,10 @@ def create_app():
db.close()
import tables
import auth
app.register_blueprint(tables.tables, url_prefix="/api")
app.register_blueprint(auth.auth, url_prefix="/api/auth")
with app.app_context():
init_db(get_db())

View File

@@ -1,6 +1,7 @@
from sqlalchemy import Column, ForeignKey, Integer, Table
from sqlalchemy.orm import relationship
from main import db
from werkzeug.security import generate_password_hash, check_password_hash
def create_new_session(user: User) -> Session:
return
@@ -9,16 +10,16 @@ class User(db.Model):
__tablename__ = "users"
user_id = db.Column(db.Integer, primary_key=True)
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"
self.password_hash = generate_password_hash(newPassword)
def test_password(self, password: str) -> bool:
return True
return self.check_password_hash(password)
def to_dict(self):
return {"username": self.user_name}
@@ -28,7 +29,7 @@ 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"))
parent_id = db.Column(db.Integer, ForeignKey("users.id"))
issue_timestamp = db.Column(db.Integer)
user = relationship("User", back_populates="sessions")