stc

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

commit b393f0757edea13eb425d215ebe08f1b9f1d61a2
parent 4215582755f2cae56ab14eac28b45f4f67db797f
Author: Brennen T. Mazur <brennen@madis.cool>
Date:   Fri,  3 Feb 2023 12:33:22 -0700

resolved login() and other auth fn(s), and fixed seeds data injection

Diffstat:
Mapp/models.py | 9+++++----
Mapp/routes.py | 8++++----
Mconfig.py | 2+-
Mseeds.py | 6++++--
4 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/app/models.py b/app/models.py @@ -13,25 +13,26 @@ from pydantic import Field, ValidationError, validator from werkzeug.security import generate_password_hash, check_password_hash #from app import db -class User: +class User(): def __init__(self, fname, mname, lname, email, phonenumber, branch, address, birthday, role): self.fname = str(fname) self.mname = str(mname) self.lname = str(lname) - self.username = self.fname + self.mname + self.lname + self.username = self.fname.lower() + self.mname.lower() + self.lname.lower() self.email = email - self.phonenumber = int(phonenumber) + self.phonenumber = phonenumber self.branch = str(branch) self.address = address self.birthday = birthday self.role = role + self.password_hash = None def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): - return check_password_hash(self.password_hash, password) + return check_password_hash(self['password_hash'], password) @staticmethod def is_authenticated(): diff --git a/app/routes.py b/app/routes.py @@ -2,7 +2,7 @@ import datetime from app import app from flask_pymongo import PyMongo from flask_login import LoginManager -from flask import render_template, url_for, request, flash +from flask import render_template, url_for, request, flash, redirect from app.forms import LoginForm, PunchclockWidget from flask import request from werkzeug.urls import url_parse @@ -51,13 +51,13 @@ def login(): if form.validate_on_submit(): # check form value for identity in db, if found AND form password matches stored hash, create User object u = mongo.db.user_collection.find_one({"username": form.username.data}) - if u and User.check_password(u['password'], form.password.data): + if u and User.check_password(u, form.password.data): user_obj = User(fname=u['fname'],mname=u['mname'],lname=u['lname'],email=u['email'],branch=u['branch'],address=u['address'],birthday=u['birthday'],role=u['role'],phonenumber=u['phonenumber']) #login with new user object login_user(user_obj) - flask.flash('Logged in successfully.') + flash('Logged in successfully.') # check next redirect to stop cross-site-redirects, another example here : http://flask.pocoo.org/snippets/62/ - next = flask.request.args.get('next') + next = request.args.get('next') if not next or url_parse(next).netloc != '': next = url_for('dashboard') return redirect(next) diff --git a/config.py b/config.py @@ -2,4 +2,4 @@ import os class Config(object): SECRET_KEY = os.environ.get('SECRET_KEY') or 'temporary-dev-key-here-change-prior-to-deployment' - MONGO_URI = "mongodb://localhost:27017/app.db" + MONGO_URI = "mongodb://localhost:27017/simple_resource_management_software" diff --git a/seeds.py b/seeds.py @@ -18,12 +18,13 @@ user1 = { 'fname': 'Nikolas', 'mname': 'M', 'lname': 'Mazur', - 'birkhday': '1999-03-26', + 'username': 'nikolasmmazur', + 'birthday': '1999-03-26', 'password_hash': 'pbkdf2:sha256:260000$DBIF9Dfq1OcsYwSk$37f5cc231ff2c97cc7a6b60f25c767380574f1c01cc17069da4f3e7e25ba3370', 'role': 'Developer', 'address': '275 DuPont Dr, Lander Wy 82520', 'branch': 'Lander', - 'phonenumber': 3074380460, + 'phonenumber': '3074380460', 'email': 'kolemazur@gmail.com', 'pay_period': 'salaried', 'pay_value': 43000, @@ -35,6 +36,7 @@ user2 = { 'fname': 'Brennen', 'mname': 'T', 'lname': 'Mazur', + 'username': 'brennentmazur', 'birthday': '1997-04-28', 'password_hash': 'pbkdf2:sha256:260000$ukazhSEG3m9xH2oL$5cc00ff3411f614720287c18f615d71578face70abc990ea5def89f520b0ac2c', 'role': 'Developer',