diff --git a/app/api/routes.py b/app/api/routes.py index 5fe5e7b5b58333e89e15d55b20ad83aab3b842b7..503853e56491a02df325c73afb31916631fe5157 100644 --- a/app/api/routes.py +++ b/app/api/routes.py @@ -26,7 +26,7 @@ def get_user_by_id(id): def create_user(): try: #Hardcoded for now as when running upgrade on new db no users exist yet, will change at some point - result = User.create_user('ethan_root', 'ethan2.clay@live.uwe.ac.uk', 'password1234', 1) + result = User.create_user('ethan_root', 'ethan2.clay@live.uwe.ac.uk', 'password1234', 2) # Role ID 2 is for admins if result is None: return jsonify({'error': 'User not found'}), 404 diff --git a/app/auth/routes.py b/app/auth/routes.py index fa6a1b6fe6d153458d2e8f2c0f8ebf8b77ca2b53..e841d6e899da7ad7796af0ddb8a7a624593b0854 100644 --- a/app/auth/routes.py +++ b/app/auth/routes.py @@ -1,5 +1,5 @@ #https://www.digitalocean.com/community/tutorials/how-to-add-authentication-to-your-app-with-flask-login#step-1-installing-packages -from flask import Blueprint, render_template, redirect, url_for, request +from flask import Blueprint, render_template, redirect, url_for, request, flash from app.auth import bp from werkzeug.security import generate_password_hash, check_password_hash from app.models import User @@ -21,7 +21,7 @@ def signup_post(): if user: return redirect(url_for('profile.signup')) - new_user = User(username=username, email=email, password=generate_password_hash(password, method='pbkdf2:sha256'), role_id=2) # Assuming role_id is required and you have a default value or retrieve it from elsewhere + new_user = User.create_user(username=username, email=email, password=password) db.session.add(new_user) db.session.commit() @@ -41,4 +41,4 @@ def login_post(): return redirect(url_for('profile.login')) login_user(user, remember=remember) - return redirect(url_for('main.profile')) \ No newline at end of file + return redirect(url_for('profile.index')) \ No newline at end of file diff --git a/app/models/user.py b/app/models/user.py index 8431368b820cd886881aa2a4a8afd53fbe7b18e6..dcc99b3c7ee8e9a4e1a30e9708f35af1ee4d6b66 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -1,5 +1,6 @@ from flask import request, jsonify from flask_login import UserMixin +from werkzeug.security import generate_password_hash, check_password_hash from app import db class User(UserMixin, db.Model): @@ -14,8 +15,9 @@ class User(UserMixin, db.Model): token_expiry = db.Column(db.DateTime(), nullable=True) @classmethod - def create_user(cls, username, email, password, role_id): - new_user = cls(username=username, email=email, password=password, role_id=role_id) + def create_user(cls, username, email, password, role_id = 1): # Role ID 1 is default for standard users + hashed_password = generate_password_hash(password, method='pbkdf2:sha256') + new_user = cls(username=username, email=email, password=hashed_password, role_id=role_id) db.session.add(new_user) db.session.commit() diff --git a/app/profile/routes.py b/app/profile/routes.py index f827e4e877ca8635dca73d3f2c1cdd3aba47426f..ebfcbf45402ca733299d133f30730eb38344de00 100644 --- a/app/profile/routes.py +++ b/app/profile/routes.py @@ -13,7 +13,7 @@ def index(): @bp.route('/login') def login(): - return 'Login' + return render_template('profile/login.html') @bp.route('/signup', methods=['POST']) def signup_post(): @@ -37,4 +37,4 @@ def signup(): @bp.route('/logout') def logout(): - return 'Logout' \ No newline at end of file + return 'Logout'