Move most of the processing into the upload

This commit is contained in:
Michał Gdula 2023-03-05 16:22:11 +00:00
parent 970d3dcf66
commit 0a27d79a82
8 changed files with 107 additions and 100 deletions

View file

@ -5,6 +5,7 @@ User registration, login and logout and locking access to pages behind a login
import re
import uuid
import logging
from datetime import datetime as dt
import functools
from flask import Blueprint, flash, g, redirect, request, session, url_for, abort, jsonify
@ -49,14 +50,14 @@ def load_logged_in_user():
g.user = None
session.clear()
else:
is_alive = db_session.query(db.sessions).filter_by(session_uuid=user_uuid).first()
is_alive = db_session.query(db.Sessions).filter_by(session_uuid=user_uuid).first()
if is_alive is None:
logging.info('Session expired')
flash(['Session expired!', '3'])
session.clear()
else:
g.user = db_session.query(db.users).filter_by(id=user_id).first()
g.user = db_session.query(db.Users).filter_by(id=user_id).first()
@blueprint.route('/register', methods=['POST'])
@ -96,7 +97,11 @@ def register():
try:
db_session.add(db.users(username, email, generate_password_hash(password)))
register_user = db.Users(username=username,
email=email,
password=generate_password_hash(password),
created_at=dt.now())
db_session.add(register_user)
db_session.commit()
except exc.IntegrityError:
return f'User {username} is already registered!'
@ -116,7 +121,7 @@ def login():
username = request.form['username']
password = request.form['password']
user = db_session.query(db.users).filter_by(username=username).first()
user = db_session.query(db.Users).filter_by(username=username).first()
error = []
@ -138,11 +143,14 @@ def login():
session['user_id'] = user.id
session['uuid'] = str(uuid.uuid4())
db_session.add(db.sessions(user.id,
session.get('uuid'),
request.remote_addr,
request.user_agent.string,
1))
session_query = db.Sessions(user_id=user.id,
session_uuid=session.get('uuid'),
ip_address=request.remote_addr,
user_agent=request.user_agent.string,
active=True,
created_at=dt.now())
db_session.add(session_query)
db_session.commit()
except Exception as err:
logging.error('User %s could not be logged in: %s', username, err)