summaryrefslogtreecommitdiffstats
path: root/accounts/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/__init__.py')
-rw-r--r--accounts/__init__.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/accounts/__init__.py b/accounts/__init__.py
index b11a143..ba5a670 100644
--- a/accounts/__init__.py
+++ b/accounts/__init__.py
@@ -1,10 +1,11 @@
# -*- coding: utf-8 -*-
+from flask.ext.login import LoginManager
import account
from flask import Flask, g, session
from utils import *
-
from utils.sessions import EncryptedSessionInterface
+from utils.login import parse_userid
from views import default, admin
@@ -24,23 +25,21 @@ if app.config.get('USERNAME_BLACKLIST_FILE'):
with open(app.config['USERNAME_BLACKLIST_FILE']) as f:
app.username_blacklist = f.read().split('\n')
+login_manager = LoginManager()
+login_manager.init_app(app)
+
+@login_manager.user_loader
+def load_user(user_id):
+ try:
+ username, password = parse_userid(user_id)
+ return current_app.user_backend.auth(username, password)
+ except (current_app.user_backend.NoSuchUserError,
+ current_app.user_backend.InvalidPasswordError):
+ return None
+
@app.before_request
def session_permanent():
if app.config.get('PERMANENT_SESSION_LIFETIME'):
session.permanent = True
else:
session.permanent = False
-
-@app.before_request
-def initialize_user():
- g.user = None
-
- if 'username' in session and 'password' in session:
- username = ensure_utf8(session['username'])
- password = ensure_utf8(session['password'])
- try:
- g.user = current_app.user_backend.auth(username, password)
- except (current_app.user_backend.NoSuchUserError,
- current_app.user_backend.InvalidPasswordError):
- # we had crap in the session, delete it
- logout_user()