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:
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',