45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
from datetime import datetime
|
|
from flask import Blueprint, flash, render_template, request
|
|
import flask_login
|
|
from flask_login import current_user
|
|
from goathacks.registration.forms import LoginForm, RegisterForm
|
|
from werkzeug.security import generate_password_hash
|
|
|
|
from goathacks import db
|
|
from goathacks.models import User
|
|
|
|
bp = Blueprint('registration', __name__, url_prefix="/registration")
|
|
|
|
@bp.route("/")
|
|
def register():
|
|
if current_user.is_authenticated:
|
|
flash("You are already registered and logged in!")
|
|
|
|
form = RegisterForm(request.form)
|
|
if request.method == 'POST' and form.validate():
|
|
email = request.form.get('email')
|
|
first_name = request.form.get('first_name')
|
|
last_name = request.form.get('last_name')
|
|
password = request.form.get('password')
|
|
password_c = request.form.get('password_confirm')
|
|
|
|
|
|
if password == password_c:
|
|
# Passwords match!
|
|
user = User(
|
|
email=email,
|
|
password=generate_password_hash(password),
|
|
first_name=first_name,
|
|
last_name=last_name,
|
|
last_login=datetime.now(),
|
|
)
|
|
|
|
db.session.add(user)
|
|
db.session.commit()
|
|
flask_login.login_user(user)
|
|
|
|
return "OK"
|
|
else:
|
|
flash("Passwords do not match")
|
|
|
|
return render_template("register.html", form=form)
|