Skip to content
Snippets Groups Projects
Commit cda995b1 authored by Nathan Bills's avatar Nathan Bills
Browse files

Login is working. Signup is working. Server side validation on each form is also working :)

parent 7f77caf6
Branches
No related tags found
No related merge requests found
# -*- coding: utf-8 -*-
from project import app
from flask import render_template, request
from flask import render_template, request, session, redirect, url_for
from flask.ext.wtf import Form, TextField, validators
from project.model.User import User
@app.route('/login')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login/master.html')
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
user = User.validateUser(email, password)
if user is not None:
session['user'] = user.toJson()
return redirect(url_for('libraries'))
else:
error = "That email or password is not valid. Please check your credentials and try again."
return render_template('login/master.html', error=error)
return render_template('login/master.html')
@app.route('/signup', methods=['GET', 'POST'])
def signup():
if request.method == 'GET':
return render_template('login/signup.html')
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
passwordConfirm = request.form['passwordConfirm']
if password == passwordConfirm:
#check unique user
if len(User.objects(email=email)) == 0:
from project.model.Library import Library
#if unique, create user
user = User.createUser(email, password)
user.addRole('user').save()
session['user'] = user.toJson()
Library(user=user, unit='Movie', name='Master').save()
Library(user=user, unit='Movie', name='Borrowed').save()
return redirect(url_for('libraries'))
else:
error = "The passwords you entered did not match. Please try again."
return render_template('login/signup.html', error=error, email=email)
pass
return render_template('login/signup.html')
\ No newline at end of file
......@@ -22,9 +22,8 @@ def test():
@app.route('/test-user')
def test_user():
from project.models.User import User
test_user = User(created_at=datetime.datetime.now(), email='test@user.org', password='password', role='admin').save()
print "date: %s" % test_user.created_at
from project.model.User import User
test_user = User.createUser(email='ndbills@gmail.com', password='password')
#check if test_user exists
#if yes, return a success render_template
#else add the user and return some other template
......
{% extends "index.html" %}
{% block content %}
<div class="col-sm-12">
<div class="jumbotron">
<h1>It's working!!!</h1>
<p>Here, all of your wildest dreams can come true.</p>
......@@ -24,4 +25,5 @@
</div>
</div>
</div>
</div>
{% endblock %}
......@@ -37,7 +37,7 @@
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="{{ url_for('login') }}">Login</a></li>
<li><a href="#">Sign-up</a></li>
<li><a href="{{ url_for('signup') }}">Sign-up</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
......
{% extends "index.html" %}
{% block content %}
<div class="col-sm-12">
<h3>Action Movies</h3>
<table class="table table-striped table-hover">
<thead>
......@@ -54,4 +55,5 @@
</tr>
</tbody>
</table>
</div>
{% endblock %}
\ No newline at end of file
{% extends "index.html" %}
{% block content %}
<div class="col-sm-12">
<div class="row">
<div class="col-xs-12 col-sm-3 col-md-2">
<img data-src="holder.js/100%x200/sky" alt="movie title">
......@@ -33,4 +34,5 @@
<p>Coming Soon!</p>
</div>
</div>
</div>
{% endblock %}
\ No newline at end of file
{% extends "index.html" %}
{% block content %}
<div class="col-sm-12">
<h3>My Libraries</h3>
<table class="table table-striped table-hover">
<thead>
......@@ -61,4 +62,5 @@
</tr>
</tbody>
</table>
</div>
{% endblock %}
\ No newline at end of file
{% extends "index.html" %}
{% block content %}
<!-- Login -->
<div class="col-sm-12">
<div class="col-xs-6 col-md-6">
{% if error %}
<div class="alert alert-danger">
{{ error }}
</div>
{% endif %}
<div class="col-sm-offset-3 col-sm-12">
<h3>Login</h3>
</div>
<form class="form-horizontal" role="form">
<form class="form-horizontal" role="form" method="post" action="{{ url_for('login') }}">
<div class="form-group">
<label for="userEmail" class="col-sm-3 control-label">Email</label>
<div class="col-xs-9 col-md-6">
<input type="email" class="form-control" id="userEmail" placeholder="Email address">
<input type="email" class="form-control" id="userEmail" name="email" placeholder="Email address">
</div>
</div>
<div class="form-group">
<label for="userPassword" class="col-sm-3 control-label">Password</label>
<div class="col-xs-9 col-md-6">
<input type="password" class="form-control" id="userPassword" placeholder="Password">
<input type="password" class="form-control" id="userPassword" name="password" placeholder="Password">
</div>
</div>
<div class="form-group">
......@@ -25,31 +32,5 @@
</div>
</form>
</div>
<!-- Sign-up -->
<div class="col-xs-6 col-md-6">
<div class="col-sm-offset-3 col-sm-12">
<h3>Sign-up</h3>
</div>
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="userEmail" class="col-sm-3 control-label">Email</label>
<div class="col-xs-9 col-md-6">
<input type="email" class="form-control" id="userEmail" placeholder="Email address">
</div>
</div>
<div class="form-group">
<label for="userPassword" class="col-sm-3 control-label">Password</label>
<div class="col-xs-9 col-md-6">
<input type="password" class="form-control" id="userPassword" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-10">
<button type="submit" class="btn btn-default">Sign up</button>
</div>
</div>
</form>
</div>
{% endblock %}
\ No newline at end of file
{% extends "index.html" %}
{% block content %}
<!-- Sign-up -->
<div class="col-sm-12">
<div class="col-xs-6 col-md-6">
{% if error %}
<div class="alert alert-danger">
{{ error }}
</div>
{% endif %}
<div class="col-sm-offset-3 col-sm-12">
<h3>Sign-up</h3>
</div>
<form class="form-horizontal" role="form" method="post" action="{{ url_for('signup') }}">
<div class="form-group">
<label for="userEmail" class="col-sm-3 control-label">Email</label>
<div class="col-xs-9 col-md-6">
<input type="email" class="form-control" id="userEmail" name="email" placeholder="Email address">
</div>
</div>
<div class="form-group">
<label for="userPassword" class="col-sm-3 control-label">Password</label>
<div class="col-xs-9 col-md-6">
<input type="password" class="form-control" id="userPassword" name="password" placeholder="Password">
</div>
</div>
<div class="form-group">
<label for="userPasswordConfirm" class="col-sm-3 control-label">Confirm Password</label>
<div class="col-xs-9 col-md-6">
<input type="password" class="form-control" id="userPasswordConfirm" name="passwordConfirm" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" class="btn btn-default">Sign up</button>
</div>
</div>
</form>
</div>
</div>
{% endblock %}
\ No newline at end of file
{% extends "index.html" %}
{% block content %}
<div class="col-sm-12">
<h3>My Movies</h3>
<table class="table table-striped table-hover">
<thead>
......@@ -54,4 +55,6 @@
</tr>
</tbody>
</table>
</div>
{% endblock %}
\ No newline at end of file
{% extends "index.html" %}
{% block content %}
<div class="col-sm-12">
<div class="row">
<div class="col-xs-12 col-sm-3 col-md-2">
<img data-src="holder.js/100%x200/sky" alt="movie title">
......@@ -33,4 +34,5 @@
<p>Coming Soon!</p>
</div>
</div>
</div>
{% endblock %}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment