User registration v1 added

This commit is contained in:
Josako
2024-04-23 08:55:08 +02:00
parent fd25c39395
commit 60bc75010d
5 changed files with 81 additions and 9 deletions

View File

@@ -21,6 +21,7 @@ class UserForm(FlaskForm):
is_active = BooleanField('Is Active')
is_tester = BooleanField('Is Tester')
is_admin = BooleanField('Is Administrator')
valid_to: DateField('Valid To', id='datepicker')
tenant = IntegerField('Tenant ID', validators=[NumberRange(min=0)])
is_super = BooleanField('Is Super User')
valid_to = DateField('Valid to', id='datepicker')
tenant_id = IntegerField('Tenant ID', validators=[NumberRange(min=0)])
submit = SubmitField('Submit')

View File

@@ -2,7 +2,7 @@
from datetime import datetime as dt, timezone as tz
from flask import request, redirect, url_for, flash, render_template, Blueprint
from ..models.user import User, Tenant
from ..extensions import db
from ..extensions import db, bcrypt
from .user_forms import TenantForm, UserForm
user_bp = Blueprint('user_bp', __name__, url_prefix='/user')
@@ -60,7 +60,7 @@ def tenant():
def user():
if request.method == 'POST':
# Handle the required attributes
username = request.form.get('username')
username = request.form.get('user_name')
email = request.form.get('email')
password = request.form.get('password')
first_name = request.form.get('first_name')
@@ -78,12 +78,16 @@ def user():
elif not last_name:
error = 'Last name is required.'
if error is None:
new_user = User(username=username, email=email, password=password, first_name=first_name, last_name=last_name)
password_hash = bcrypt.generate_password_hash(password).decode('utf-8')
# Create new user if there is no error
new_user = User(user_name=username, email=email, password=password_hash, first_name=first_name, last_name=last_name)
# Handle optional attributes
new_user.is_active = request.form.get('is_active')
new_user.is_tester = request.form.get('is_tester')
new_user.is_admin = request.form.get('is_admin')
new_user.is_active = bool(request.form.get('is_active'))
new_user.is_tester = bool(request.form.get('is_tester'))
new_user.is_admin = bool(request.form.get('is_admin'))
new_user.is_super = bool(request.form.get('is_super'))
new_user.valid_to = request.form.get('valid_to')
# Handle Timestamps
@@ -92,7 +96,11 @@ def user():
new_user.updated_at = timestamp
# Handle the relations
new_user.tenant_id = request.form.get('tenant_id')
tenant_id = request.form.get('tenant_id')
the_tenant = Tenant.query.get(tenant_id)
new_user.tenant = the_tenant
# Add the new user to the database and commit the changes
try:
db.session.add(new_user)