commit 3e8e0441aeb961b249b3a7e8c6e61d88aac8489d
parent a6fe98777ec9c5a0972800dbc70b1c95ddf7344a
Author: Nikolas Mazur <nikolas@pop-os.localdomain>
Date: Wed, 25 Jan 2023 15:04:59 -0700
Update user models and routes
Diffstat:
2 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/app/models.py b/app/models.py
@@ -10,9 +10,10 @@ from fastapi.encoders import jsonable_encoder
#from passlib.hash import pbkdf2_sha256 # Replace with Brennen's hash when he finds it
from typing import List, Optional
from pydantic import Field, ValidationError, validator
+from werkzeug.security import generate_password_hash, check_password_hash
#from app import db
-class Users:
+class User:
def start_session(self, user):
del user['password']
@@ -22,7 +23,7 @@ class Users:
def signup(self):
print(request.form)
- users = {
+ user = {
'_id': uuid.uuid4().hex,
'username': request.form.get('Username'),
'password': request.form.get('Password'),
@@ -34,21 +35,21 @@ class Users:
'pay_value': request.form.get('Pay Value'),
}
- # users['password'] = pbkdf2_sha256.encrypt(users['password'])
+ # user['password'] = generate_password_hash(user['password'])
- return jsonify(users), 200
+ return jsonify(user), 200
def signout(self):
session.clear()
- return redirect('/login')
+ return redirect('/loginModel')
- # def login(self):
- # users = db.users.find_one({
+ # def loginModel(self):
+ # user = db.user.find_one({
# 'email': request.form.get('email')
# })
- # if users and pbkdf2_sha256.verify(request.form.get('password'), users['password']):
- # return self.start_session(users)
+ # if user and password_verify(request.form.get('password'), user['password']):
+ # return self.start_session(user)
# return jsonify({ 'error': 'Invalid login' }), 401
diff --git a/app/routes.py b/app/routes.py
@@ -9,6 +9,7 @@ from flask import request
from werkzeug.urls import url_parse
from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import current_user, login_user, logout_user, login_required
+from app.models import User, Time, Fleet, Agreement, Projects
OrganizationName = 'Youth Employment Program' # Maybe pass this as a value though the object for relevant pages???
@@ -17,11 +18,19 @@ mongo = PyMongo(app)
login_manager = LoginManager(app)
login_manager.login_view = 'login'
-#from models import Users, Time, Fleet, Agreement, Projects
+# User Routes
@app.route('/user/signup', methods=['GET'])
def signup():
- return Users().signup()
+ return User().signup()
+@app.route('/user/loginModel', methods=['GET'])
+def loginModel():
+ return User().loginModel()
+
+@app.route('/user/signout')
+def signout():
+ return User().signout()
+# User Routes
# Page Routes
@app.route('/') #main route should check if user is logged in, then redirect to /dashboard else redirect to /login