Skip to content

Commit

Permalink
flask-login
Browse files Browse the repository at this point in the history
  • Loading branch information
mjhea0 committed Oct 14, 2014
1 parent 901a3bb commit dde4e82
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 38 deletions.
13 changes: 13 additions & 0 deletions project/__init__.py
Expand Up @@ -5,6 +5,7 @@
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.bcrypt import Bcrypt
from flask.ext.login import LoginManager
import os

################
Expand All @@ -13,6 +14,8 @@

app = Flask(__name__)
bcrypt = Bcrypt(app)
login_manager = LoginManager()
login_manager.init_app(app)
app.config.from_object(os.environ['APP_SETTINGS'])
db = SQLAlchemy(app)

Expand All @@ -22,3 +25,13 @@
# register our blueprints
app.register_blueprint(users_blueprint)
app.register_blueprint(home_blueprint)


from models import User

login_manager.login_view = "users.login"


@login_manager.user_loader
def load_user(user_id):
return User.query.filter(User.id == int(user_id)).first()
21 changes: 3 additions & 18 deletions project/home/views.py
Expand Up @@ -2,10 +2,11 @@
#### imports ####
#################

from flask import render_template, Blueprint
from flask.ext.login import login_required

from project import db
from project.models import BlogPost
from flask import flash, redirect, session, url_for, render_template, Blueprint
from functools import wraps

################
#### config ####
Expand All @@ -17,22 +18,6 @@
)


##########################
#### helper functions ####
##########################


def login_required(test):
@wraps(test)
def wrap(*args, **kwargs):
if 'logged_in' in session:
return test(*args, **kwargs)
else:
flash('You need to login first.')
return redirect(url_for('users.login'))
return wrap


################
#### routes ####
################
Expand Down
12 changes: 12 additions & 0 deletions project/models.py
Expand Up @@ -37,5 +37,17 @@ def __init__(self, name, email, password):
self.email = email
self.password = bcrypt.generate_password_hash(password)

def is_authenticated(self):
return True

def is_active(self):
return True

def is_anonymous(self):
return False

def get_id(self):
return unicode(self.id)

def __repr__(self):
return '<name {}'.format(self.name)
26 changes: 6 additions & 20 deletions project/users/views.py
Expand Up @@ -3,9 +3,10 @@
#################

from flask import flash, redirect, render_template, request, \
session, url_for, Blueprint
from functools import wraps
from forms import LoginForm
url_for, Blueprint
from flask.ext.login import login_user, login_required, logout_user

from .forms import LoginForm
from project.models import User, bcrypt

################
Expand All @@ -17,21 +18,6 @@
template_folder='templates'
)

##########################
#### helper functions ####
##########################


def login_required(test):
@wraps(test)
def wrap(*args, **kwargs):
if 'logged_in' in session:
return test(*args, **kwargs)
else:
flash('You need to login first.')
return redirect(url_for('users.login'))
return wrap


################
#### routes ####
Expand All @@ -47,7 +33,7 @@ def login():
if user is not None and bcrypt.check_password_hash(
user.password, request.form['password']
):
session['logged_in'] = True
login_user(user)
flash('You were logged in. Go Crazy.')
return redirect(url_for('home.home'))

Expand All @@ -59,6 +45,6 @@ def login():
@users_blueprint.route('/logout')
@login_required
def logout():
session.pop('logged_in', None)
logout_user()
flash('You were logged out.')
return redirect(url_for('home.welcome'))
1 change: 1 addition & 0 deletions requirements.txt
@@ -1,5 +1,6 @@
Flask==0.10.1
Flask-Bcrypt==0.6.0
Flask-Login==0.2.11
Flask-Migrate==1.2.0
Flask-SQLAlchemy==1.0
Flask-Script==2.0.5
Expand Down

0 comments on commit dde4e82

Please sign in to comment.