User registration v1 added
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -14,6 +14,14 @@
|
||||
<div><a href="/register">Register</a></div>
|
||||
<div><a href="/login">Login</a></div>
|
||||
<hr>
|
||||
{% with messages = get_flashed_messages()%}
|
||||
{% if messages%}
|
||||
{% for message in messages%}
|
||||
<p>{{message}}</p>
|
||||
{%endfor%}
|
||||
{%endif%}
|
||||
{%endwith%}
|
||||
<hr>
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
<!-- Optional JavaScript -->
|
||||
|
||||
53
eveai_app/templates/user/user.html
Normal file
53
eveai_app/templates/user/user.html
Normal file
@@ -0,0 +1,53 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}User Details{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<form action="" method="post" novalidate>
|
||||
<p>
|
||||
{{ form.user_name.label }}<br>
|
||||
{{ form.user_name(size=80) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.email.label }}<br>
|
||||
{{ form.email(size=80) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.password.label }}<br>
|
||||
{{ form.password(size=80) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.first_name.label }}<br>
|
||||
{{ form.first_name(size=80) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.last_name.label }}<br>
|
||||
{{ form.last_name(size=80) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.is_active.label }}<br>
|
||||
{{ form.is_active() }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.is_tester.label }}<br>
|
||||
{{ form.is_tester() }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.is_admin.label }}<br>
|
||||
{{ form.is_admin() }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.is_super.label }}<br>
|
||||
{{ form.is_super() }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.valid_to.label }}<br>
|
||||
{{ form.valid_to() }}
|
||||
</p>
|
||||
<p>
|
||||
{{ form.tenant_id.label }}<br>
|
||||
{{ form.tenant_id() }}
|
||||
</p>
|
||||
<p>{{ form.submit() }}</p>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -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')
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user