summaryrefslogtreecommitdiffstats
path: root/accounts/utils/login.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/utils/login.py')
-rw-r--r--accounts/utils/login.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/accounts/utils/login.py b/accounts/utils/login.py
index 9888e89..204296c 100644
--- a/accounts/utils/login.py
+++ b/accounts/utils/login.py
@@ -1,10 +1,28 @@
# -*- coding: utf-8 -*-
-from flask.ext.login import current_user
+from flask import current_app
+from flask.ext.login import LoginManager, current_user
from functools import wraps
from werkzeug.exceptions import Forbidden
from itsdangerous import base64_decode, base64_encode, compact_json
+def create_login_manager():
+ login_manager = LoginManager()
+ login_manager.login_message = 'Bitte einloggen'
+ login_manager.login_view = 'login.login'
+
+ @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
+
+ return login_manager
+
+
def create_userid(username, password):
userid = (username, password)
return base64_encode(compact_json.dumps(userid))