beginning to add user session functionality

This commit is contained in:
Lucas Mathews
2024-05-21 00:05:43 +02:00
parent 544b9e1c2f
commit 139bda89a3
9 changed files with 83 additions and 42 deletions

View File

@@ -4,7 +4,7 @@
from class_client import Client
from class_account import Account
from class_transaction import Transaction
from flask import jsonify
from flask import jsonify, session, request # Imports the Flask modules
import hashlib # hashlib for password hashing
import datetime # datetime for timestamps
import uuid # uuid for unique identifiers
@@ -32,6 +32,30 @@ def generate_uuid_short(): # Generates a short uuid
### Client ###
##############
def login(client_id:str, password:str): # Logs in a user
password_hash = password_hash(password)
for client in session.query(Client).all():
if client.client_id == client_id and client.hash == password_hash:
session['client_id'] = client_id
return jsonify({"message": f"{session['username']} logged in succsessfully."}), 200
return "Invalid client_id or password.", 401
def logout():
if 'client_id' in session:
session.pop('client_id', None)
return jsonify({"message": "Logged out"}), 200
return jsonify({"message": "Not logged in"}), 404
def status():
if 'client_id' in session:
return jsonify({"message": f"Logged in as {session['username']}"}), 200
else:
return jsonify({"message": "Not logged in"}), 400
##############
### Client ###
##############
def get_client(client_id:str): # Returns a specific client in the database
client = session.query(Client).filter_by(client_id=client_id).one_or_none()
for client in session.query(Client).all():
@@ -96,16 +120,6 @@ def change_password(client_id:str, password:str, new_password:str): # Changes th
return f"client_id: {client_id} is not found.", 404
def login_user(email:str, password:str):
for client in session.query(Client).all():
if client.email == email and client.password == password:
return f"Welcome {client.name}."
return "Invalid email or password."
def logout_user():
return "You have been logged out."
###############
### Account ###
###############