stc

a simple time card webapp
git clone _git@git.brennen.work:stc.git
Log | Files | Refs | README

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:
Mapp/models.py | 19++++++++++---------
Mapp/routes.py | 13+++++++++++--
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