diff --git a/eveai_app/models/user.py b/eveai_app/models/user.py
index bc99def..51aabc3 100644
--- a/eveai_app/models/user.py
+++ b/eveai_app/models/user.py
@@ -48,6 +48,8 @@ class User(db.Model):
is_active = db.Column(db.Boolean, default=True)
is_tester = db.Column(db.Boolean, default=False)
is_admin = db.Column(db.Boolean, default=False)
+ is_super = db.Column(db.Boolean, default=False)
+ confirmed_at = db.Column(db.DateTime, nullable=True)
valid_to = db.Column(db.Date, nullable=True)
# Login Information
diff --git a/eveai_app/templates/base.html b/eveai_app/templates/base.html
index 6781a93..bc94efd 100644
--- a/eveai_app/templates/base.html
+++ b/eveai_app/templates/base.html
@@ -14,6 +14,14 @@
+ {% with messages = get_flashed_messages()%}
+ {% if messages%}
+ {% for message in messages%}
+ {{message}}
+ {%endfor%}
+ {%endif%}
+ {%endwith%}
+
{% block content %}{% endblock %}
diff --git a/eveai_app/templates/user/user.html b/eveai_app/templates/user/user.html
new file mode 100644
index 0000000..ab6cd8e
--- /dev/null
+++ b/eveai_app/templates/user/user.html
@@ -0,0 +1,53 @@
+{% extends 'base.html' %}
+
+{% block title %}User Details{% endblock %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/eveai_app/views/user_forms.py b/eveai_app/views/user_forms.py
index 7abae40..208d9ba 100644
--- a/eveai_app/views/user_forms.py
+++ b/eveai_app/views/user_forms.py
@@ -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')
diff --git a/eveai_app/views/user_views.py b/eveai_app/views/user_views.py
index 6265a5a..1b697d9 100644
--- a/eveai_app/views/user_views.py
+++ b/eveai_app/views/user_views.py
@@ -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)